優化程序

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

相關文章
相關標籤/搜索