地鐵五分鐘理解LRU算法

2020-12-03 程式設計師燈塔

LRU(Least recently used,最近最少使用)算法作為內存管理的一種有效算法,其含義是在內存有限的情況下,當內存容量不足時,為了保證程序的運行,這時就不得不淘汰內存中的一些對象,釋放這些對象佔用的空間,那麼選擇淘汰哪些對象呢?

LRU算法就提供了一種策略,告訴我們選擇最近一段時間內,最久未使用的對象將其淘汰,至於為什麼要選擇最久未使用的,因為其核心思想是「如果數據最近被訪問過,那麼將來被訪問的機率也更高」。

lru算法演示

1、最開始時,內存空間是空的,因此依次進入A、B、C是沒有問題的。

2、當加入D時,就出現了問題,內存空間不夠了,因此根據LRU算法,內存空間中A待的時間最為久遠,選擇A,將其淘汰。

3、當再次引用B時,內存空間中的B又處於活躍狀態,而C則變成了內存空間中,近段時間最久未使用的。

4、當再次向內存空間加入E時,這時內存空間又不足了,選擇在內存空間中待的最久的C將其淘汰出內存,這時的內存空間存放的對象就是E->B->D。

LRU算法的整體思路就是這樣的,其實非常簡單,就是當年我們學習的數據結構中,隊列的基本模型。代碼就不貼了,每次面試都會問到。

相關焦點

  • 以及訂閱模式、LRU
    volatile-lru 會將設置了過期時間的key中,淘汰掉最近最少使用的key。沒有設置過期時間的key不會被淘汰,保證了需要持久化的數據不丟。volatile-ttl 嘗試將設置了過期時間的key中,剩餘生命周期越短,越容易被淘汰。volatile-random 嘗試將從設置了過期時間的key中,隨機選擇一些key進行淘汰。allkeys-lru 從所有key中,淘汰掉最近最少使用的key。
  • 如何使用鍊表實現 LRU 算法
    什麼是 LRU 算法LRU 是一種緩存淘汰策略。計算機的緩存容量有限,如果緩存滿了就要刪除一些內容,給新的內容騰位置。但是要刪除哪些內容呢?我們肯定希望刪掉那些沒有用的緩存,而把有用的數據繼續留在緩存中,方便之後繼續使用。
  • 五分鐘了解機器學習十大算法
    本文為有志於成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。機器學習是該行業的一個創新且重要的領域。我們為機器學習程序選擇的算法類型,取決於我們想要實現的目標。現在,機器學習有很多算法。因此,如此多的算法,可能對於初學者來說,是相當不堪重負的。
  • 地鐵與輕軌的區別
    若採用大載客量車廂,能適應遠期單向高峰小時客流量為3.0~6.0萬人次的統稱為地鐵。當然,地鐵有建於地下的、地面的、高架的(如建於地面上的高架地鐵也可稱之為軌道交通);而輕軌鐵路同樣有建於地下、地面、高架的。有人認為地鐵肯定是建在地下的,而在地面行駛的則認為是輕軌;更有人認為輕軌鐵路的鋼軌重量要比地鐵為輕,這些理解均是錯誤的。兩者區分主要視其單向最大高峰小時客流量。
  • 「近水樓臺先得月」——理解KNN算法
    在人工智慧領域,有一種算法,非常貼近上述的形象比喻,這就是KNN算法,即K最近鄰算法(K-NearestNeighbors,簡稱KNN),它是一個比較簡單的機器學習算法,也是一個理論上比較成熟的、運用基於樣本估計的最大後驗概率規則的判別方法。本文對KNN算法做一個通俗易懂的介紹,並通過python進行編碼示範,讓讀者朋友對該算法有較好的理解。
  • 地鐵裡親上了?小情侶在地鐵忘情親吻20分鐘,乘客:不好意思阻止
    導語:現在人們的出行選擇的代步工具越來越多,然而坐地鐵和公交車還是節能環保的第一出行方式。很多人將這樣的公共場所當成了自己的私密空間,男女情侶直接做出不雅行為,讓人頗為尷尬。網絡圖片,侵刪(內容來源於|成都廣播電視臺公共頻道官方帳號《CDTV5成都全接觸》)近日,一段小情侶在地鐵車廂內忘情親吻20分鐘的視頻在網絡熱傳,很多的乘客對記者表示,這樣的行為應該制止!
  • 莫斯科地鐵神秘失蹤案 14分鐘乘客竟全部失蹤
    莫斯科地鐵神秘失蹤案 14分鐘乘客竟全部失蹤時間:2015-12-15 10:51   來源:川北在線整理   責任編輯:沫朵 川北在線核心提示:原標題:莫斯科地鐵神秘失蹤案 14分鐘乘客竟全部失蹤 世界上也有很多離奇事件發生在地鐵中,比如1975年發生的莫斯科地鐵神秘失蹤案。
  • 面試不再怕,程式設計師大佬教你20行Python代碼,搞懂LRU算法
    LRU算法在後端工程師面試中,是一個比較常出現的題目,這篇文章帶大家一起,理解LRU算法,並最終用Python輕鬆實現一個基於LRU算法的緩存。緩存是什麼先看一張圖,當我們訪問網頁,瀏覽器會給伺服器發請求,伺服器會經過一系列的運算,把頁面返回給瀏覽器。
  • 粒子群算法粗解——如何形象理解粒子群算法
    今天給大家介紹一種優化算法。粒子群優化算法,也叫作鳥群算法,英文簡稱PSO算法。算法是這樣定義的,首先對於鳥群中的鳥,其所擁有的變量有三個,第一,是其當前的位置信息。第二,是其速度,這個速度(包含速度大小和速度方向)就決定了下一時刻該鳥的位置。
  • 北京十四五期間城市副中心地鐵建設項目公布,M102線確認分段實施
    在軌道交通建設方面有6個項目,包括3條地鐵、2條城際鐵路和1條市郊鐵路,咱們一一來看。十四五期間開通項目推進與廊坊北三縣一體化聯動發展,深化「四統一」協同機制,推進M22線(平谷線)、京唐城際等一批軌道交通運行通車。平谷線西起CBD區域東大橋站,東至平谷新城,經過朝陽、通州、三河、平谷,共設置21座車站,副中心範圍內5座車站明年將實現開工。
  • 為何有的區間列車只開2分鐘?有的8分鐘?【競猜】魔都地鐵最長的區間在哪裡?
    由於地鐵線路所經過的區域不同,許多車站兩站之間的距離長度也不盡相同。市中心的線路車站間距相對較短,一般列車開行2分鐘左右。而郊區線路,兩站之間的區間長度則可能相對更長。而有的站間距離還會特別長,可能要抵上中心城區車站間距的好幾倍,我們稱為「長大區間」。你感覺到嗎?
  • 【大幹100天】中鐵五局鄭許鐵路、鳳凰磁懸浮、滇中引水、北京地鐵...
    【大幹100天】中鐵五局鄭許鐵路、鳳凰磁懸浮、滇中引水、北京地鐵等項目傳來捷報 2020-08-05 14:42 來源:澎湃新聞·澎湃號·政務
  • 10時,滬防空警報長鳴3分鐘,地鐵列車停站鳴笛!
    今天10時 滬防空警報長鳴3分鐘 統一於今天(清明節)上午10時準時發放解除警報信號,鳴響時間3分鐘。解除警報信號規定為:連續長鳴3分鐘。
  • 到底什麼是DES加密算法?這樣理解試試!
    在說DES加密算法之前,我們首先了解幾個基本概念:明文:明文是指沒有經過加密的數據。一般而言,明文都是等待傳輸的數據。由於沒有經過加密,明文很容易被識別與破解,因此在傳輸明文之前必須進行加密處理。密文:密文只是明文經過某種加密算法而得到的數據,通常密文的形式複雜難以識別及理解。
  • 蘭州地鐵安檢員 守護1號線安全「第一關」
    高波波告訴記者,蘭州大學站雖然不是蘭州地鐵1號線客流量最大的站點,但也位列前五。按照每天6000人次的客流量計算,蘭州大學站有兩個安檢口,安檢員進行早、晚班輪值,四名手檢員每天要重複彎腰蹲起動作18000次,一名手檢員每天4500次……腰酸背痛也就難免了。
  • 「休息五分鐘」用英語怎麼說?
    「休息五分鐘」用英語怎麼說?「休息五分鐘」的多種表達對於簡單英語「休息五分鐘」的表達,我們應該具備「用」下面英語表達的能力,而不僅僅只從「英譯漢」,或「漢譯英」對等的傳統視角學習一句英語「休息五分鐘」:1.
  • 剛出地鐵就聽見五條人的演唱會?這是什麼神仙運氣?
    今年夏天的快樂全是五條人給的五條人作為一支樂隊但是卻有著喜劇的內核這也讓他們在這個夏天火遍了大江南北樂隊的LOGO是一個塑膠袋因為塑膠袋是生活中最常見的物品,你走到哪裡都能見到,他們希望他們的音樂也能像塑膠袋一樣隨處可見比如你們能看到他們在菜市場唱歌
  • 地鐵上旁若無人擁吻五站路,小夥,你嘴不起泡我眼睛起泡了
    「你這是地鐵版毒狗糧啊,我要投訴你!」  「真浪漫,真開放,支持他們。」  「看的我,藍瘦香菇"  」鈦合金狗眼都廢了!哥們你厲害!「  」一次吻十幾分鐘不缺氧麼?「  上面是小編摘錄的部分網友對「地鐵馬拉松式接吻長達五站」的微博評論,可以看到網友褒貶不一!
  • 10分鐘讓你理解泊松分布、指數分布
    比起高等數學,統計概念其實容易理解多了。我舉一個例子,什麼是泊松分布和指數分布?恐怕大多數人都說不清楚。我可以在10分鐘內,讓你毫不費力地理解這兩個概念。日常生活中,大量事件是有固定頻率的。●某醫院平均每小時出生3個嬰兒●某公司平均每10分鐘接到1個電話●某超市平均每天銷售4包xx牌奶粉●某網站平均每分鐘有2次訪問、前端它們的特點就是,我們可以預估這些事件的總數,但是沒法知道具體的發生時間。已知平均每小時出生3個嬰兒,請問下一個小時,會出生幾個?
  • AlphaZero制勝解讀,通用強化學習算法自我對弈 | 2分鐘論文
    雷鋒網:雷鋒字幕組出品系列短視頻《 2 分鐘論文 》,帶大家用碎片時間閱覽前沿技術,了解 AI 領域的最新研究成果。本期論文:用通用強化學習算法自我對弈,掌握西洋棋和將棋Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm觀看論文解讀大概需要 6 分鐘回顧AlphaZero