我一直在嘗試使用Pygame爲python 3製作3D繪圖庫。我想使用Z-Buffer,所以我需要爲每個應繪製的像素調用函數。問題是繪製100x100像素的矩形需要超過1毫秒。爲矩形 繪圖功能嵌套函數調用環,它可以被簡化成這個代碼來顯示最大的瓶頸:如何加快python 3中函數調用的嵌套for循環?
def another_function():
pass
def test_function():
for j in range(100):
for k in range(100):
another_function()
功能another_function(),其不執行任何操作被稱爲總10000倍。當我測量執行時間時,timeit顯示test_function()需要1.09毫秒。這太長了,因爲需要繪製多個矩形並且要達到每秒60幀,一個幀必須少於17毫秒。
我試着尋找解決方案,但除了使用PyPy和Cython之外,我一直無法找到任何提高嵌套for循環的速度的函數調用的速度。
其他信息:我使用Python 3.5.2和Windows 10 64位作爲操作系統。我沒有找到PyPy for Windows的任何安裝程序,並且在編譯轉換爲.c的模塊時,Cython出現問題,因此我無法使用它。
做你的函數內聯? – jeremycg
PyPy for windows可以在這裏找到:https://bitbucket.org/pypy/pypy/downloads/ – Y0da
_當你的Python有性能問題時/你的循環和調用運行得太慢/記住舊的智慧:/ **寫入C **!_ – zwer