2017-04-10 50 views
0

標題是這裏的主要問題。我在我的電腦上運行了一些PyOpenGL代碼,運行速度有點慢。我意識到我沒有安裝PyOpenGL加速。這並沒有改變速度,但大多數Python OpenGL綁定的教程都建議應該安裝PyOpenGL加速。PyOpenGL加速到底是什麼?

這個模塊到底做了什麼?

回答

2

首先請注意,PyOpenGL加速不是一個銀彈。因此,如果您已經不能優化您的應用程序,那麼如果有任何額外的性能,PyOpenGL加速並不會爲您帶來太多收益。

這就是說。 PyOpenGL加速由Cython加速器模塊組成,它試圖加速PyOpenGL 3.x的各個方面。因此,如果您使用glBegin()glEnd()進行繪製,那麼您將無法從中獲得任何效果。

那麼什麼是Cython加速器模塊?

這些模塊是完全獨立的,創建的目的只是爲了運行速度快於在CPython中運行的等效純Python代碼。理想情況下,如果加速版本在給定系統上不可用,那麼加速器模塊將始終具有相當於純Python的用作回退。 CPython標準庫大量使用加速器模塊。

Python – Binary Extensions

更通俗地說。可以這麼說,Python和C之間有一點混合。目標是優化和執行速度。

與PyOpenGL相關 - 加速這意味着PyOpenGL提供的各種幫助類。而是以提供更多性能的方式實施。

0

documentation

這組C(用Cython)擴展在PyOpenGL 3.x中提供共同操作的加速慢了點對於使用大型數組的代碼,與未加速的代碼相比,廣泛地加速大約10%。

如果你想準確地知道被定義哪些優化你可以通過代碼挖掘,但OpenGL的通常是建立周圍出奇的粗優化,以適應不同的硬件 - 我想延伸到離一個解釋的運行,以及。

+0

我們在同一時間回答,直到第二個。這相當令人印象深刻。 – Vallentin