我不确定每个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色。但它打破了我程序中的所有颜色设置。
欢迎提出所有建议和问题!
答案 0 :(得分: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下载最新的Motif版本。 https://sourceforge.net/projects/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