python性能是個瓶頸,不必在上面花太多精力。若是在乎性能,應當直接換編程語言。python
優化python的思路:算法
一、數據結構編程
set/list/dict等等要區分清楚用途json
二、算法segmentfault
不在這裏細說,通用思路數據結構
三、多層循環併發
- 減小沒必要要的運算 for i in range(10): x = len(aa) ....
- 減小構造中間變量 t = a; b = t ; a = t; => a, b = b,a
- 減小查找變量的深度 保證在locals()中就能夠找到,不要去globals(),甚至__builtins__
四、語言特性編程語言
- 用生成器(generator)/yield 對於遍歷時,因爲它沒有構造整個列表,而是由迭代器移動,因此它節省空間
- 用join鏈接字符串 它比「+」高效的緣由,它只有構造一個最終的字符串;而「+」須要構造n-1箇中間字符串
- 多用C擴展庫 如cPickle等等這樣c字母開頭的庫
- 迭代生成時多用() (for i in [1,2..] if i ...) 比 [for i in [1,2..] if i ...]快不少
- 反序列化工具比較 json.loads比cPickle.loads快近3倍,比eval(...)快20多倍
五、併發函數
六、特殊工具工具
- PyPy 它比CPython實現的Python要快6倍以上
- cProfile 分析每一個函數所用時間,是分析工具
參考:http://segmentfault.com/a/1190000000666603#articleHeader17