gtkglextx2b;Haskell程序在Windows上运行比在Linux上慢得多

gtkglextx2b;Haskell程序在Windows上运行比在Linux上慢得多,windows,opengl,haskell,gtk,Windows,Opengl,Haskell,Gtk,我有一个Haskell程序,它使用Gtk/GtkGLExt,在Linux上运行良好(最新的Arch和最新的Ubuntu,所有Haskell库都是最新的,使用最新的6.*GHC) 然而,当我在Windows7上编译并运行同一程序时,GUI速度太慢,几乎无法使用。即使程序的其余部分(通常在后台进行数字运算)处于空闲状态,这种慢度仍然存在 最让人困惑的是:大约十次中有一次,当运行时,GUI的响应速度将与Linux上的一样快。没有发现其他规律 要运行Windows版本,我必须编译最新的FreeType和

我有一个Haskell程序,它使用Gtk/GtkGLExt,在Linux上运行良好(最新的Arch和最新的Ubuntu,所有Haskell库都是最新的,使用最新的6.*GHC)

然而,当我在Windows7上编译并运行同一程序时,GUI速度太慢,几乎无法使用。即使程序的其余部分(通常在后台进行数字运算)处于空闲状态,这种慢度仍然存在

最让人困惑的是:大约十次中有一次,当运行时,GUI的响应速度将与Linux上的一样快。没有发现其他规律

要运行Windows版本,我必须编译最新的FreeType和FTGL库。由于上述“千载难逢”的行为,我倾向于认为我在这里没有犯错误

无论是否使用多线程编译,并且在多个内核上运行都没有区别

以前有人处理过这种行为吗?有什么明显的东西我可能遗漏了吗


如果我没有提供足够的信息,我会很乐意提供更多的信息——我现在不知道还能说什么。

应该得到公认答案的人其实是
pechenie

这是gtkglext的错。运行程序时,在兼容性选项下禁用桌面合成。这将使问题消失


此链接有一个潜在的修复程序:

可能链接的OpenGL opengl32.dll没有性能?GtkGLExt是否引入了自己的OpenGL DLL—可能是Windows上的旧Mesa?我不这么认为。Glut32.dll似乎是唯一包含的库,使用其他版本没有帮助。我想这完全是GtkGLExt的错误。您是否尝试编译并启动提供的C\C++GtkGLExt示例?他们顺利吗?而且,GtkGLExt库似乎已经死了。尝试在XP兼容模式下运行你的应用程序。好吧,在不同的兼容模式下运行没有任何作用,但是禁用桌面合成似乎可以完全解决问题。如果你发布一个回答说这是gtkglext的错误(可能是链接到),我会接受它:D谢谢。