1. 盡量使用區域性變數
python 檢索區域性變數比檢索全域性變數快. 這意味著,盡量避免 "global" 關鍵字.
2. 盡量使用 "in"
使用 "in" 關鍵字. 簡潔而快速.
for key in sequence:
print key
3. 當有大量字串連續相加時使用string的join()方法而不是使用「+」號
對於字串相加操作較少的時候,使用「+」是最快的,但當連續相加超過一定的界限時,則使用join()是一種比較快的方式。這是因為
使用 + 連線兩個字串時會生成乙個新的字串,生成新的字串就需要重新申請記憶體,當連續相加的字串很多時(a+b+c+d+e+f+...) ,效率低下就是必然的了。對於這種連加操作可以用列表實現:str = ''.jon(a,b,c,d,e,f,...) 以提高效率,這樣只會有一次記憶體的申請。
4. 為無限迴圈使用 "while 1"
在python2中,true和false不是關鍵字,可以對其進行任意賦值,所以python直譯器就得再程式執行時每次都要對其值進行檢查,而對於1,程式則不會檢查,所以更快。
5. 使用xrange()處理長序列:
因為xrange()在序列中每次呼叫只產生乙個整數元素。而相反 range(),它將直接給你乙個完整的元素列表,用於迴圈時會有不必要的開銷。
例如如下**片:
n=range(10)
print n
print type(n)
結果如下:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
再考慮如下**片:
n=xrange(10)
print n
print type(n)
結果如下:
xrange(10)
所以使用range(),生成的是乙個完整的list物件;使用xrange,生成的是xrange的乙個迭代物件,生成器,更省記憶體。當然,如果需要生成的列表項很少,最好還是使用range()。
6. 使用dict 和 set 測試成員:
檢查乙個元素是在dicitonary或set是否存在 這在python中非常快的。這是因為dict和set使用雜湊表來實現。查詢效率可以達到o(1)。因此,如果您需要經常檢查成員,使用 set 或 dict做為你的容器.
7.
使用第三方包
有很多為python設計的高效能的第三方庫和工具. 下面是一些有用的加速包的簡短列表.
1. numpy
: 乙個開源的相當於matlab的包
2. scipy
: 另乙個數值處理庫
3. gpulib
: 使用gpus加速**
4. pypy
: 使用 just-in-time 編譯器優化python**
5. cython
: 將python優碼轉成c
Mysql效能優化小建議
mysql的效能優化主要參考文章 1 2 和 3 其中已使用且比較有效果的有 1 禁止autocommit,防止每次插入都提交,重新整理log set autocommit 0 sql import statements commit 2 對頻繁查詢的字段建立索引,但要注意加入索引後,執行插入操作時...
省電的小建議
熱水器隨用隨開。熱水器不要隨時都開著,如果想用,就開啟加熱,加熱溫度合適了,就關閉它,不用總是讓熱水器處於給電保溫的狀態,浪費電能。電視機拔掉插頭。電視機不看了的時候,一定要拔掉插頭,或者將插頭徹底斷電,這樣做的好處是能夠大大節省電能,因為,電視機關閉的情況下也會耗費一定的電。因為由於開啟的一瞬間,...
2 學習小建議
什麼樣的什麼樣的 張三 在什麼樣的時間,什麼樣的地點,什麼樣的方式,什麼樣的條件,什麼樣的 狀態 給 什麼樣的什麼樣的 李四 一本什麼樣的什麼樣的 書 高個子,留著長頭髮的 老師 昨天在學校裡 給 小個子的,留著短頭髮的 學生 一本有趣的英語 書狀語詳細交代了動作的細節情況 表達時間 地點 方式可以...