2

对于包含许多文件的 nfs 目录,打开 gtk FileChooserDialog 非常缓慢。strace 显示很多时间调用“stat”。对目录中的每个文件进行大约 5 次调用。我们如何关闭对“stat”的调用,只显示文件名列表而不显示修改时间?

我们正在使用运行 Redhat Enterprise 4、x86_64、Linux 2.6.9-42.0.8.ELsmp 和 FileChooser 来自: /usr/lib64/libgtk-x11-2.0.so.0.400.13 。一个测试程序打开一个 FileChooserDialog 并需要 10 秒才能出现,而 'ls' 列出同一目录大约需要 25 毫秒。

我们的 Eclipse 应用程序被这个文件选择器问题削弱了......

4

3 回答 3

2

至少自 2005 年以来,gtk+ 和 gnome 团队有一个与此问题相关的错误报告。gnome 核心库最近和未来的变化有望提高性能。如果您在文件选择器菜单中有任何网络驱动器书签,则此问题可能会更加严重。

于 2009-05-12T23:00:54.613 回答
0

GTK 文件打开对话框很可能是 stat(2)ting 目录中的所有文件。它相当于ls -l目录上的 ,它应该运行缓慢。的输出ls | cat(明显更快)可能还不够,因为它无法区分文件和目录。

我建议 measurels | catls -lGTK 文件打开对话框。如果 GTK 文件打开对话框比 慢很多ls -l,那么 GTK(不是 NFS)有问题。我会通过 运行 GTK 应用程序strace,看看什么是慢的。如果 GTK 文件打开对话框的速度ls -l与作为桑巴。

于 2009-05-01T21:53:03.653 回答
-1

目录是否已挂载?这可能对统计信息有所帮助,因为每个文件的时间都将使用统计信息进行更新。

您需要使用 -o noatime 重新安装 nfs 以关闭 atime 更新。

于 2009-05-01T16:07:12.597 回答