8

我不确定是否每个 IDL 用户都会遇到这种情况,但在升级到 macOS Sierra 和 xQuartz 2.7.11 后,我的 IDL 小部件的响应速度变得令人无法接受。我在 Red Hat Enterprise Linux Workstation 6.6 上运行了相同的程序。它工作顺利。在升级之前,我曾经使用 SSH 连接到 OS X Mavericks 的相同程序。通过适当的互联网连接,它也可以正常工作。不幸的是,我不记得我使用的是哪个版本的 xQuartz。

我认为问题与 SSH 无关。我尝试使用 SSH 和本地运行程序,响应率似乎非常相似。

我试图将我的 xQuartz 降级到 2.7.9,但问题没有解决。

我尝试自己调试,所以我发现以下链接与我有类似的问题。 https://bugs.freedesktop.org/show_bug.cgi?id=93430

现在可以加快响应速度的唯一方法是强制将输出设置为 256 色。但它破坏了我程序中的所有颜色设置。

感谢所有建议和问题!

4

1 回答 1

2

如果您的 IDL 小部件使用 Motif 和 XFT(抗锯齿字体),那么我有一个解决方案,可以帮助加快速度。

根本问题在于 XQuartz 以及它如何与 Mac 图形子系统交互。在 El Capitan 之后,所有需要往返的 Xlib 调用都变得非常慢。如果您使用 SSH 网络访问,这些通常也会减慢 X 客户端的响应速度,但在这种情况下,本地运行的程序也会发生这种情况。

由于我们无法修复 MacOS,我们需要“修复”我们的软件并避免在其他系统上运行良好的慢功能。并且在旧版本的 MacOS 上运行良好。

首先,在您自己的软件中,尽量减少使用 Xlib 调用,这会导致往返:XSync、XInternAtom、XGetWindowAttributes、XQuery*(XQueryColor、XQueryBestCursor、XQueryBestSize、...)、XGetAtom...

这将有助于提高任何基于 Xt 的工具包的性能。在普通的 X 服务器上,如果在本地运行,不会有很大的收获,但在 XQuartz 上,就会有很大的不同。

最后,如果您将 Motif 与 XFT 一起使用,您可以从 Sourceforge https://sourceforge.net/projects/motif/下载最新的 Motif 版本 并应用此错误报告中描述的修复:http: //bugs.motifzone.com/ show_bug.cgi?id=1715 解决了查询使用 XFT 字体绘制的每个标签的背景颜色的问题。

您可以在此视频(Motif XFT 文本标签修复) https://www.youtube.com/watch?v=Tg8KQrU0XkU和此视频 中观察我为我的软件获得的加速 (通过使用平铺重用共享来减少 XSnyc 调用)内存缓冲区) https://www.youtube.com/watch?v=MNxnOeqiOCw

于 2020-06-26T11:34:49.827 回答