Prévenir l'appel de statistiques par gtk FileChooserDialog sur tous les fichiers du répertoire?

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

  •  03-07-2019
  •  | 
  •  

Question

L'ouverture d'un fichier gtk FileChooserDialog est extrêmement lente pour les répertoires nfs contenant de nombreux fichiers. strace montre beaucoup de temps à appeler "stat". Environ 5 appels pour chacun des fichiers du répertoire. Comment pouvons-nous désactiver les appels à 'stat' et simplement afficher une liste de noms de fichiers sans l'heure de modification?

Nous utilisons Redhat Enterprise 4, x86_64, Linux 2.6.9-42.0.8.ELsmp et FileChooser proviennent de: /usr/lib64/libgtk-x11-2.0.so.0.400.13. Un programme de test ouvre FileChooserDialog et met 10 secondes à apparaître, contre environ 25 ms pour que "ls" répertorie le même répertoire.

Notre application eclipse est paralysée par ce problème de sélecteur de fichiers ...

Était-ce utile?

La solution

Les équipes gtk + et gnome ont un rapport de bogue relatif à ce problème. , du moins depuis 2005. Les modifications récentes et futures dans les bibliothèques principales de gnome amélioreront les performances. Ce problème peut être aggravé si vous avez des favoris vers les lecteurs réseau dans le menu filechooser.

Autres conseils

La boîte de dialogue d’ouverture de fichier GTK contient probablement tous les fichiers du répertoire, stat (2). C'est un équivalent de ls -l dans le répertoire, et il devrait fonctionner lentement. La sortie de ls | cat (qui est nettement plus rapide) pourrait ne pas suffire, car il est impossible de distinguer les fichiers des répertoires.

Je suggérerais de mesurer ls | cat , ls -l et la boîte de dialogue d'ouverture du fichier GTK. Si la boîte de dialogue d'ouverture de fichier GTK est beaucoup plus lente que ls -l , il y a un problème avec GTK (pas NFS). J'exécutais l'application GTK avec strace et voyais ce qui était lent. Si la boîte de dialogue d'ouverture de fichier GTK a à peu près la même vitesse que ls -l , je ne pense pas que cela puisse être fait plus rapidement - des indicateurs de montage NFS peuvent peut-être être modifiés, des clients et des serveurs NFS mis à niveau, ou il est possible de passer à une infrastructure plus rapide telle que Samba.

Le répertoire est-il monté noatime? Cela peut aider avec les statistiques, car l’atime de chaque fichier sera mis à jour avec la statistique.

Vous devrez remonter le montage nfs avec -o noatime afin de désactiver la mise à jour automatique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top