¿Prevenir las estadísticas de llamadas de gtk FileChooserDialog en todos los archivos del directorio?

StackOverflow https://stackoverflow.com/questions/809560

  •  03-07-2019
  •  | 
  •  

Pregunta

Abrir un gtk FileChooserDialog es dolorosamente lento para los directorios nfs que contienen muchos archivos. strace muestra mucho tiempo llamando a "stat". Aproximadamente 5 llamadas para cada uno de los archivos en el directorio. ¿Cómo podemos desactivar las llamadas a 'stat' y simplemente mostrar una lista de nombres de archivos sin la hora de modificación?

Estamos utilizando Redhat Enterprise 4, x86_64, Linux 2.6.9-42.0.8.ELsmp y FileChooser proviene de: /usr/lib64/libgtk-x11-2.0.so.0.400.13. Un programa de prueba abre un FileChooserDialog y tarda 10 segundos en aparecer, en comparación con unos 25 ms para que 'ls' muestre el mismo directorio.

Nuestra aplicación de eclipse está paralizada por este problema del selector de archivos ...

¿Fue útil?

Solución

El equipo de gtk + y gnome tiene un informe de error relacionado con este problema , al menos desde 2005. Los cambios recientes y futuros en las bibliotecas principales de gnome con suerte mejorarán el rendimiento. Este problema puede agravarse si tiene marcadores en las unidades de red en el menú del selector de archivos.

Otros consejos

El cuadro de diálogo para abrir el archivo GTK es probablemente stat (2) ting todos los archivos del directorio. Es un equivalente de ls -l en el directorio, y debería ejecutarse lentamente. La salida de ls | cat (que es significativamente más rápido) podría no ser suficiente, porque no se pueden distinguir los archivos de los directorios.

Sugeriría medir ls | cat , ls -l yy el diálogo de apertura del archivo GTK. Si el diálogo para abrir el archivo GTK es mucho más lento que ls -l , entonces hay algo mal con GTK (no NFS). Ejecuté la aplicación GTK a través de strace , y vi qué es lento. Si el cuadro de diálogo para abrir el archivo GTK tiene aproximadamente la misma velocidad que ls -l , no creo que se pueda hacer más rápido, tal vez se puedan ajustar los indicadores de montaje NFS, actualizar los clientes y servidores NFS, o es posible cambiar a una infraestructura más rápida como Samba.

¿El directorio está montado en noatime? Eso puede ayudar con la estadística ya que el atime de cada archivo se actualizará con la estadística.

Tendrá que volver a montar el montaje nfs con -o noatime para desactivar la actualización de atime.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top