提问人:Dave Buchan 提问时间:11/17/2023 最后编辑:Dave Buchan 更新时间:11/21/2023 访问量:64
Glade 使用大型 GtkGrid 的速度非常慢
Glade is extremely slow with large GtkGrid
问:
我正在为一个使用Glade的项目开发用户界面,在其中我创建了一个尺寸为22行乘36列的GtkGrid。虽然没有向网格添加子小部件,但 Glade 的行为很正常,因为当我退出 Glade 时它会迅速关闭。但是当我添加标签和/或按钮时,关闭 Glade 的速度越来越慢。如果我用子小部件填充所有占位符位置,实际上需要几个小时才能关闭 Glade(但它确实关闭了)。
当我编辑文件时,Glade 仍然完全响应。
Glade 保存文件的速度似乎也不受影响,因为我可以看到使用 vi 可以立即更新文件。
运行我的项目应用程序时,它的行为几乎正常,除了在我退出应用程序后命令行响应能力略有延迟。因此,该应用程序完全可用。我有一台速度非常快的电脑,但速度较慢的电脑可能会有问题。我没试过。
我创建了一个简单的示例 Glade 文件来演示该问题:
https://pdbuchan.com/tmp/example.ui
上面的示例导致 Glade 需要大约 10 秒才能为我关闭。如果添加更多子小部件,速度会减慢。
在格莱德中似乎有一些进程按照 n^2 顺序运行。即 O(n^2)
我的问题是:这是对GtkGrid的不恰当使用吗?有没有更合适的方法来实现大量按钮?这是否说明了 Glade 处理大型网格的方式效率低下?
我在 Ubuntu Linux 22.04.3 LTS 上使用 GTK+3 和 Glade 3.38.2,Glade 针对 GTK 3.24 webkit2gtk 2.28,配备 Intel i9-12900K 和 64 GB 内存。
答:
我看了一下,但不知道从哪里开始 a) 任何调用都没有 Python 或 C 链接(我个人使用的是带有 python 的 GLADE) b) 很多占位符 任何打开/关闭都不会打扰我(减少空占位符? ) 只要它在 python 或 C 应用程序中非常快速地关闭/打开。是这样吗?
评论