python可變交換效能優化

2021-09-07 02:47:23 字數 1028 閱讀 2431

離許多新的壓力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支援讓...