Frage

Das Öffnen eines GTK -FilchooSerDialogs ist für NFS -Verzeichnisse, die viele Dateien enthalten, schmerzlich langsam. Strace zeigt viel Zeit, "Statist" zu nennen. Ungefähr 5 Anrufe für jede der Dateien im Verzeichnis. Wie können wir die Anrufe zu 'Stat' ausschalten und einfach eine Liste von Dateinamen ohne Änderungszeit anzeigen?

Wir verwenden das Betrieb von Redhat Enterprise 4, x86_64, Linux 2.6.9-42.0.8.elsmp und Filechooser stammt von: /usr/lib64/libgtk-x11-2.0.so.0.400.13. Ein Testprogramm eröffnet einen filechooSerDialog und dauert 10 Sekunden, verglichen mit etwa 25 ms, um das gleiche Verzeichnis aufzulisten.

Unsere Eclipse -Anwendung wird durch dieses Problem der Dateiauswahl verkrüppelt ...

War es hilfreich?

Lösung

Das GTK+ und das Gnome -Team haben a Insekt Der Bericht im Zusammenhang mit dieser Ausgabe, zumindest seit 2005. Jüngste und zukünftige Änderungen in den Gnome -Kernbibliotheken werden die Leistung hoffentlich verbessern. Dieses Problem kann verschlechtert werden, wenn Sie Lesezeichen für Netzwerk -Laufwerke im FileChoser -Menü haben.

Andere Tipps

Das Dialogfeld "GTK -Datei Öffnen" besteht höchstwahrscheinlich stat (2) alle Dateien im Verzeichnis. Es ist ein Eqivalent von ls -l Auf dem Verzeichnis, und es sollte so langsam herumlaufen. Die Ausgabe von ls | cat (was erheblich schneller ist) reicht möglicherweise nicht aus, da man Dateien nicht von Verzeichnissen unterscheiden kann.

Ich würde vorschlagen, zu messen ls | cat, ls -l und und die GTK -Datei öffnen Dialog. Wenn das Dialog der GTK -Datei geöffnet ist, ist viel langsamer als ls -l, Dann stimmt etwas mit GTK (nicht mit NFS) nicht. Ich würde die GTK -Anwendung durchführen strace, und sehen, was langsam ist. Wenn das Dialog der GTK -Datei geöffnet ist, hat ungefähr die gleiche Geschwindigkeit wie ls -l, Ich denke nicht, dass es schneller gemacht werden kann - vielleicht können NFS -Mount -Flags optimiert, NFS -Clients und Server aktualisiert werden oder es ist möglich, auf eine schnellere Infrastruktur wie Samba umzusteigen.

Ist das Verzeichnis noatime montiert? Dies kann beim STAT helfen, da die Atime für jede Datei mit dem Status aktualisiert wird.

Sie müssen die NFS -Halterung mit -O -Noatime wiederherstellen, um eine aktuelle Aktualisierung auszuschalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top