注:本文的原文地址爲 Quick Python Performance Optimization: Part IIpython
這個是 Python 性能快速優化的第二部分,第一部分請點擊這裏。數據結構
for 循環
a in b
, 字典 或 set 比 列表 或 元組 更好deque
del - 刪除對象使用以下
1) python 本身處理它,但確保使用了 gc
模塊
2) 編寫 __del__
函數
3) 最簡單的方式,使用後調用 del
ide
time.clock()函數
GIL 僅僅容許一個 Python 的原生線程來運行每一個進程。阻止 CPU 級別的並行,嘗試使用 ctypes
和 原生的 C 庫來解決它,當你達到 Python 優化的最後,老是存在一個選項,可使用原生的 C 重寫慢的函數,經過 Python 的 C 綁定使用它,其餘的庫如 gevent
也是致力於解決這個問題,而且得到了成功。oop
TL,DR:當你寫代碼了,過一遍數據結構,迭代結構,內建和爲 GIL 建立 C 擴展,若有必要。性能
更新:multiprocessing 是在 GIL 的範圍以外,這意味着你可使用 multiprocessing
這個標準庫來運行多個進程。優化
看下個人 2013 的印度 PyCon 演講ui