離許多新的壓力python效能優化見交換兩個變數值可以使用
a,b = b,a
這樣能夠提高效能
>>> from timeit import timer
>>> timer("t=a;a=b;b=t","a=1;b=2").timeit()
0.06279781319366587
>>> timer("a,b=b,a","a=1;b=2").timeit()
0.0378979925538232
>>>
從執行時間上看,確實節省了快一半的時間
通過dis得到python位元組碼
>>> def func():
... a,b = b,a
...>>> import dis
>>> dis.dis(func)
2 0 load_fast 0 (b)
3 load_fast 1 (a)
6 rot_two
7 store_fast 1 (a)
10 store_fast 0 (b)
13 load_const 0 (none)
16 return_value
>>>
能夠看出主要是rot_two指令的功勞:
查閱python文件能夠知道有rot_two rot_three rot_four這種指令,能夠直接交換兩個變數、三個變數、四個變數的值
在python3.4的源**中查閱ceval.c檔案能夠看到:
target(rot_two)
target(rot_three)
就是這些指令的詳細c語言實現在,
這一切都歸結。快速或因a,b = b,a所有的方法是使用指標操作
Python效能優化
python是資料分析神器。你肯定會遇到效能上的問題,比如一段程式要跑好幾個小時,但其實你優化一下程式,就只花幾分鐘而已。下面是一些效能優化上的建議 1.盡可能地減少io操作 io操作是非常耗時的,相對於cpu運算來說。一次檔案讀取,請取出你後面可能用到的最多資料。2.減少迴圈的使用 盡可能地在一次...
python 之效能優化
類似 os.linesep 這樣的名字需要直譯器做兩次查詢 1 查詢os 以確認它是乙個模組,2 在這個模組中查詢 linesep 變數。因為模組也是全域性變數,我們多消耗了系統資源。如 果你在乙個函式中類似這樣頻繁使用乙個屬性,我們建議你為該屬性取乙個本地變數別名。變 量查詢速度將會快很多 在查詢...
python 效能優化(2)
第二部分 有益的提醒,靜態編譯的 仍然重要.僅例舉幾例,chrome,firefox,mysql,ms office 和 photoshop都是高度優化的軟體,我們每天都在使用.python作為解析語言,很明顯不適合.不能單靠python來滿足那些效能是首要指示的領域.這就是為什麼python支援讓...