如何使用 Python 讓 loop 執行地更快?


這個問題與語言無關。幾乎每種語言中都有 loop,並且到處都遵循相同的原則。你需要意識到,在進行 loop 最佳化時,編譯器會完成最繁重的工作,但是作為一名程式設計師,你也需要保持 loop 的最佳化。

重要的是認識到,你放置在 loop 中的所有內容都會對每個 loop 迭代執行。最佳化 loop 的關鍵是最大程度地減少它們所做的事情。即使看起來非常快的操作,如果重複多次,也會花費很長時間。完成一項耗時 1 微秒的操作一百萬次將需要 1 秒鐘才能完成。

不要在 loop 中執行諸如 len(list) 的操作,甚至不要在它的起始條件中執行。

示例

a = [i for i in range(1000000)]
length = len(a)
for i in a:
   print(i - length)

比快得多

a = [i for i in range(1000000)]
for i in a:
   print(i - len(a))

你還可以使用 loop 展開(https://en.wikipedia.org/wiki/Loop_unrolling)等技術,這是一種迴圈變換技術,試圖以犧牲二進位制檔案大小為代價來最佳化程式的執行速度,這是一種被稱為時空權衡的方法。

使用對映、篩選等功能,而不是顯式的 for 迴圈也能帶來一些效能改進。

更新於:2020-03-05

889 次瀏覽

開啟你的職業生涯

完成教程獲得認證

開始學習
廣告
© . All rights reserved.