注意:本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。
簡單快取實現
用法:注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循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 的實現使用乙個排序堆快取專案,結果是慢得多。
英文原文:
譯者:奇蹟
tag標籤:
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操作,...