标题是这里的主要问题。我有一些我在计算机上运行的PyOpenGL代码,运行速度有点慢。我意识到我没有安装PyOpenGL加速器。这根本没有改变速度,但是大多数使用Python OpenGL绑定的教程都表明应该安装PyOpenGL-accelerate。
这个模块究竟做了什么?
答案 0 :(得分:3)
首先请注意,PyOpenGL加速并不是一颗银弹。因此,如果您已经很难优化您的应用程序,那么PyOpenGL-accelerated如果有任何额外的性能,将不会获得那么多。
话虽如此。 PyOpenGL-accelerate由Cython加速器模块组成,它们试图加速PyOpenGL 3.x的各个方面。因此,如果您使用glBegin()
和glEnd()
进行抽奖,那么您将无法获得任何效果。
那么什么是Cython加速器模块?
这些模块是完全独立的,只是为了比CPython中运行的等效纯Python代码运行得更快。理想情况下,如果加速版本在给定系统上不可用,加速器模块将始终具有纯Python等效用作后备。 CPython标准库广泛使用加速器模块。
更多门外汉。 Cython可以说是Python和C之间的混合体。目标是优化和执行速度。
关于PyOpenGL加速,这意味着PyOpenGL提供了各种辅助类。而是以提供更高性能的方式实现。
答案 1 :(得分:0)
这组C(Cython)扩展为PyOpenGL 3.x中的慢点提供了常用操作的加速。对于使用大型阵列的代码,与未加速的代码相比,速度提升了大约10%。
如果你想确切地知道定义了哪些优化,你可以深入研究代码,但是OpenGL通常是围绕着令人惊讶的粗略优化来构建不同的硬件 - 我想这也延伸到了解释器的运行。