python實現快取 Python實現快取

2021-10-11 22:30:02 字數 890 閱讀 4401

注意:本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。

簡單快取實現

用法:注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循80/20模式時。

注釋:(100k訪問,100時隙,500項,10ms物件

建立,每個物件1k,整數鍵)

基線:速度= 1000s(0 + 1000)記憶體= 0k

memoization:  speed=5.22s (0.22+5.00) memory=500k

keep last:    speed=989.86s (0.72+989.14) memory=1k

clear all:    speed=532.51s (0.55+531.96) memory=100k

clear pop:    speed=706.51s (0.76+705.75) memory=100k

clear random: speed=400.61s (0.80+399.81) memory=100k

clear lru:    speed=317.05s (0.78+316.27) memory=100k

替代實現:

carlson:      speed=320.22s (1.35+318.87) memory=100k

prodromou:    speed=343.61s (17.88+325.73) memory=100k

carlson 的實現方式是使用手動維護的雙 - 鍊錶,複雜度是o(1),對於較小的快取比列表慢。

prodromou 的實現使用乙個排序堆快取專案,結果是慢得多。

英文原文:

譯者:奇蹟

python實現快取 Python實現快取

注意 本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。簡單快取實現 用法 注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循80 2...

python實現演算法 kmp演算法python實現

kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...

Python實現LRU快取模擬

lru lru least recently used,最近最少使用 演算法根據資料的歷史訪問記錄來進行淘汰資料,其核心思想是 如果資料最近被訪問過,那麼將來被訪問的機率也更高 實現原理 利用list記錄key的次序,每次set,或get操作將key插入到list首位。緩衝區滿之後再出現set操作,...