0
我偶然發現了一些毫無意義的東西。我有這個Python代碼,它可以做2個簡單的for-loops,並且只是測量執行時間。但是,我發現從一個函數調用完全相同的代碼需要一半的時間。有人能解釋爲什麼嗎?相同代碼的Python不同性能
print "no function"
start_time = time.time()
for i in range(10000):
for j in range(10000):
z = i*j
print z
print("--- %s seconds ---" % (time.time() - start_time))
# VS
def Function():
start_time = time.time()
for i in range(10000):
for j in range(10000):
z = i*j
print z
print("--- %s seconds ---" % (time.time() - start_time))
print "Function Call"
Function()
這裏是輸出:
no function
99980001
--- 8.89359378815 seconds ---
Function Call
99980001
--- 4.64798092842 seconds ---
如果沒有測試並且沒有受過教育的猜測,我會說接觸當地人要比全局更快,因爲他們可以有些優化(通過索引而不是名字進行處理)。 –
區別在於變量的範圍和查找時間。 –
你是對的,顯然這個問題已經在這裏得到解答了http://stackoverflow.com/questions/11241523/why-does-python-code-run-faster-in-a-function – Alex