python效能調優 優化字典查詢

2021-08-31 15:08:41 字數 1745 閱讀 3588

**:

chartosoundex = 

def soundex(source):

# ... input check omitted for brevity ...

source = source[0].upper() + source[1:]

digits = source[0]

for s in source[1:]:

s = s.upper()

digits += chartosoundex[s]

測試效能

c:\samples\soundex\stage1>python soundex1c.py

woo w000 14.5341678901

pilgrim p426 19.2650071448

flingjingwaller f452 30.1003563302

優化**2

def soundex(source):

# ...

source = source.upper()

digits = source[0] + "".join(map(lambda c: chartosoundex[c], source[1:]))

測試效能

c:\samples\soundex\stage2>python soundex2a.py

woo w000 15.0097526362

pilgrim p426 19.254806407

flingjingwaller f452 29.3790847719

匿名函式的開銷抵消了用過把string作為一組字元進行出來帶來的效能優化

優化**3

source = source.upper()

digits = source[0] + "".join([chartosoundex[c] for c in source[1:]])

測試效能

c:\samples\soundex\stage2>python soundex2b.py

woo w000 13.4221324219

pilgrim p426 16.4901234654

flingjingwaller f452 25.8186157738

可以字串處理最好用list

優化**4

allchar = string.uppercase + string.lowercase

chartosoundex = string.maketrans(allchar, "91239129922455912623919292" * 2)

def soundex(source):

# ...

digits = source[0].upper() + source[1:].translate(chartosoundex)

測試效能

c:\samples\soundex\stage2>python soundex2c.py

woo w000 11.437645008

pilgrim p426 13.2825062962

flingjingwaller f452 18.5570110168

string.maketrans建立了字元和數字之間轉換的聯絡,這種資料結構比map要快很多

效能調優 nginx優化

nginx是乙個高效能的web和反向 伺服器,有很多優越的特性。在高併發的情況下nginx的一些預設引數並不適用。下面介紹一下nginx優化的幾個方面 1.配置執行緒數和併發數 worker processes 4 cpu 程序數 events2.配置後端server的長連線 upstream se...

Elasticsearch效能調優之慢查詢日誌

es裡面的操作,主要分為兩種,一種寫入 增刪改 另一種是查詢 搜尋 我們分別要識別出來,哪些寫入操作效能比較慢,哪些查詢操作效能比較慢,先要識別出來有效能問題的這些慢查詢,慢寫入,然後才能去考慮如何優化寫入的效能,如何優化搜尋的效能 搜尋慢查詢日誌 無論是慢查詢日誌,還是慢寫入日誌,都是針對shar...

Android效能調優 繪製優化

4.1 開發者中的 過渡繪製 檢測 4.2 開發者中的 gpu 檢測 5.1 布局優化 1.減少介面巢狀,對於負責的view可以使用constraintlayout 2.使用include復用布局 3.使用merge去除多餘層級 4.使用viewstub提高載入速度 按需才載入 顯示 5.減少不必要...