注: 本文的原文地址 quick-python-performance-optimization-part-ihtml
Python可能最容易扼殺你的想法,但不是最好的代碼實現。儘管強烈反對過早優化,但在 Python 代碼中一點點的優化均可能帶來巨大的性能提高。python
解釋僅僅是目的,最正確的方式是每天使用 Python 編程,而且與性能影響相關。編程
當你的代碼在工做時,分析你的代碼,而且嘗試找出性能瓶頸在哪裏。這不與過早的優化是萬惡之源這個事實相反。這意味着一級優化,而不是進入冗長的優化序列。數據結構
更多的分析你的 Python 代碼,你須要閱讀這個 python-performance-analysis函數
另一個有趣的包, line_profiler
是一行一行的分析代碼
分析 line_profileroop
xrange
代替 range
。(在 Python2.x 中這樣作,由於 Python 3.x 中是默認的)xrange
是 range
的 C 實現,着眼於有效的內存使用。post
對於大數據,使用 numpy
,它比標準的數據結構好不少。性能
"".join(string)
比 + or +=
好大數據
while 1
比 while True
快優化
list comphrension > for loop > while
列表推導比循環遍歷列表快,但 while loop
是最慢的,須要使用一個外部計數器。
一直使用 C 版本的模塊
局部變量比全局變量,內建類型以及屬性快。
itertools
建立生成器以及儘量使用 yeild
,它們比正常的列表方式更快。
http://www.diveinto.org/python3/iterators.html
http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained
讓我繼續下一個層次的第二部分快速優化技巧