緩存問題對軟件測試工作的影響

  我們都知道軟件要運(yùn)行必須安裝在硬件上才可以福澡,硬件是軟件運(yùn)行的環(huán)境叠赦,是軟件的載體,以及軟件運(yùn)行結(jié)果的體現(xiàn)革砸。軟件運(yùn)行的好壞除秀,會受到硬件的嚴(yán)重制約,在這些硬件中常見有CPU算利、內(nèi)存册踩、硬盤等,CPU效拭、內(nèi)存暂吉、硬盤這些對軟件使用的影響大家在日常生活中應(yīng)該都深有體會胖秒,比如果國產(chǎn)手機(jī)廠商每次進(jìn)行旗艦新品手機(jī)發(fā)布會時,總會以某某超級芯片全球首發(fā)為重要賣點(diǎn)慕的,或者首次使用DDR5的手機(jī)作為賣點(diǎn)阎肝。這些無不體現(xiàn)著硬件對軟件的影響程度。除了以上這些常見的硬件外肮街,緩存對軟件的使用體驗(yàn)风题,也會起著重要的作用。

  那今天我們就來聊聊緩存在軟件測試工作中嫉父,對測試的影響沛硅。

  1.緩存的概念

  緩存(cache),原始意義是指訪問速度比一般隨機(jī)存取存儲器(RAM)快的一種高速存儲器绕辖,通常它不像系統(tǒng)主存那樣使用DRAM技術(shù)摇肌,而使用昂貴但較快速的SRAM技術(shù)。緩存的設(shè)置是所有現(xiàn)代計算機(jī)系統(tǒng)發(fā)揮高性能的重要因素之一引镊。

  CPU緩存(Cache

Memory)位于CPU與內(nèi)存之間的臨時存儲器,它的容量比內(nèi)存小但交換速度快篮条。在緩存中的數(shù)據(jù)是內(nèi)存中的一小部分弟头,但這一小部分是短時間內(nèi)CPU即將訪問的,當(dāng)CPU調(diào)用大量數(shù)據(jù)時涉茧,就可避開內(nèi)存直接從緩存中調(diào)用赴恨,從而加快讀取速度。由此可見伴栓,在CPU中加入緩存是一種高效的解決方案伦连,這樣整個內(nèi)存儲器(緩存+內(nèi)存)就變成了既有緩存的高速度,又有內(nèi)存的大容量的存儲系統(tǒng)了钳垮。緩存對CPU的性能影響很大惑淳,主要是因?yàn)镃PU的數(shù)據(jù)交換順序和CPU與緩存間的帶寬引起的。

  2.緩存的工作原理

  緩存的工作原理是當(dāng)CPU要讀取一個數(shù)據(jù)時饺窿,首先從緩存中查找歧焦,如果找到就立即讀取并送給CPU處理;如果沒有找到,就用相對慢的速度從內(nèi)存中讀取并送給CPU處理肚医,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中绢馍,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存中進(jìn)行,不必再調(diào)用內(nèi)存肠套。正是這樣的讀取機(jī)制使CPU讀取緩存的命中率非常高(大多數(shù)CPU可達(dá)90%左右)舰涌,也就是說CPU下一次要讀取的數(shù)據(jù)90%都在緩存中,只有大約10%需要從內(nèi)存讀取你稚。這大大節(jié)省了CPU直接讀取內(nèi)存的時間瓷耙,也使CPU讀取數(shù)據(jù)時基本無需等待朱躺。總的來說哺徊,CPU讀取數(shù)據(jù)的順序是先緩存后內(nèi)存室琢。

  3.緩存對性能測試的影響

  介于緩存的工作原理,我們在對軟件進(jìn)行測試時落追,一定要考慮到緩存對系統(tǒng)的影響盈滴,這其中最主要的影響是性能上的影響,因?yàn)榫彺孀钪饕淖饔檬羌铀貱PU讀取數(shù)據(jù)轿钠,CPU回將讀取頻繁的數(shù)據(jù)從內(nèi)存復(fù)制到緩存巢钓,方便下次繼續(xù)讀取,讀取的速率比從內(nèi)存中要快很多疗垛,如果緩存中沒有需要的數(shù)據(jù)症汹,則會去內(nèi)存中讀取,如果內(nèi)存中也沒有需要的數(shù)據(jù)贷腕,則會去硬盤中讀取背镇,然后放到內(nèi)存中去計算。

  我們在做性能測試時泽裳,如果我們每次都做重復(fù)性的相同的操作時瞒斩,那CPU會直接從緩存讀取,而不是從內(nèi)存中讀取數(shù)據(jù)涮总,也不是從硬盤中讀取胸囱,用戶在實(shí)際使用軟件時,每次操作可能都是查詢不同的數(shù)據(jù)瀑梗,比如說淘寶用戶烹笔,每次搜索商品名稱時,搜索存在很大的不確定性抛丽,淘寶用戶不會搜索同一個商品連續(xù)搜10次谤职。因此如果我們想驗(yàn)證搜索商品的事務(wù)響應(yīng)時間,就應(yīng)該每次搜索不同的商品亿鲜,這樣才能更加接近真實(shí)用戶的實(shí)際使用場景柬帕。我們在做性能測試時,錄制了搜索商品的腳本狡门,商品名稱就固定不便了陷寝,如果每次搜索相同的商品,只有第一次搜索對應(yīng)商品是從硬盤中讀取數(shù)據(jù)的其馏,后邊都是從緩存中讀取數(shù)據(jù)的凤跑,這樣就不能真實(shí)反映用戶場景,因此我們需要對商品名稱進(jìn)行參數(shù)化叛复,讓腳本每次運(yùn)行時仔引,搜索不同的商品扔仓,這樣就不會出現(xiàn)這種緩存約束了。

  緩存除了CPU緩存還有咖耘,硬盤緩存翘簇,硬盤緩存跟CPU緩存起的作用類似,硬盤會班讀取頻繁的數(shù)據(jù)放到硬盤緩存中儿倒,以加快讀取數(shù)據(jù)的速率版保,因此在性能測試中,對產(chǎn)品性能產(chǎn)生的影響和CPU緩存類似夫否,所以在性能測試過程中如果遇到查詢數(shù)據(jù)的場景彻犁,最好是將查詢內(nèi)容參數(shù),讓系統(tǒng)每次都能查詢不同的數(shù)據(jù)凰慈。

  4.網(wǎng)絡(luò)緩存

  緩存的概念其實(shí)很廣汞幢,除了上邊提到的CPU緩存和硬盤緩存,其實(shí)還有網(wǎng)絡(luò)緩存微谓,比如瀏覽器上的緩存森篷,應(yīng)用程序后臺的緩存都是網(wǎng)絡(luò)緩存。

  WWW是互聯(lián)網(wǎng)上最受歡迎的應(yīng)用之一豺型,其快速增長造成網(wǎng)絡(luò)擁塞和服務(wù)器超載仲智,導(dǎo)致客戶訪問延遲增大,WWW服務(wù)質(zhì)量日益顯現(xiàn)出來触创。緩存技術(shù)被認(rèn)為是減輕服務(wù)器負(fù)載坎藐、降低網(wǎng)絡(luò)擁塞为牍、增強(qiáng)WWW可擴(kuò)展性的有效途徑之一哼绑,其基本思想是利用客戶訪問的時間局部性(Temproral

Locality)原理,將客戶訪問過的內(nèi)容在Cache中存放一個副本碉咆,當(dāng)該內(nèi)容下次被訪問時抖韩,不必連接到駐留網(wǎng)站,而是由Cache中保留的副本提供疫铜。

  5.網(wǎng)絡(luò)緩存的好處

  Web內(nèi)容可以緩存在客戶端茂浮、代理服務(wù)器以及服務(wù)器端。研究表明壳咕,緩存技術(shù)可以顯著地提高WWW性能席揽,它可以帶來以下好處:

  (1)減少網(wǎng)絡(luò)流量,從而減輕擁塞谓厘。

  (2)降低客戶訪問延遲幌羞,其主要原因有:

  ①緩存在代理服務(wù)器中的內(nèi)容竟稳,客戶可以直接從代理獲取而不是從遠(yuǎn)程服務(wù)器獲取属桦,從而減小了傳輸延遲;

 ⌒艹铡②沒有被緩存的內(nèi)容由于網(wǎng)絡(luò)擁塞及服務(wù)器負(fù)載的減輕而可以較快地被客戶獲取。

  (3)由于客戶的部分請求內(nèi)容可以從代理處獲取聂宾,從而減輕了遠(yuǎn)程服務(wù)器負(fù)載果善。

  (4)如果由于遠(yuǎn)程服務(wù)器故障或者網(wǎng)絡(luò)故障造成遠(yuǎn)程服務(wù)器無法響應(yīng)客戶的請求,客戶可以從代理中獲取緩存的內(nèi)容副本系谐,使得WWW服務(wù)的魯棒性得到了加強(qiáng)巾陕。

  6.網(wǎng)絡(luò)緩存造成的影響

  Web緩存系統(tǒng)也會帶來以下問題:

  (1)客戶通過代理獲取的可能是過時的內(nèi)容。

  (2)如果發(fā)生緩存失效蔚鸥,客戶的訪問延遲由于額外的代理處理開銷而增加惜论。因此在設(shè)計Web緩存系統(tǒng)時,應(yīng)力求做到Cache命中率最大化和失效代價最小化止喷。

  (3)代理可能成為瓶頸馆类。因此應(yīng)為一個代理設(shè)定一個服務(wù)客戶數(shù)量上限及一個服務(wù)效率下限,使得一個代理系統(tǒng)的效率至少同客戶直接和遠(yuǎn)程服務(wù)器相連的效率一樣弹谁。

  介于以上情況乾巧,我們在軟件測試過程中也要盡量避免網(wǎng)絡(luò)緩存的約束,做功能測試時预愤,尤其是系統(tǒng)代碼更新了后沟于,我們最好是將自己的網(wǎng)絡(luò)緩存清一下,然后在去測試植康。在做性能測試時旷太,也盡量將網(wǎng)絡(luò)緩存清理掉。

  以上內(nèi)容為大家介紹了緩存問題對軟件測試工作的影響销睁,希望對大家有所幫助供璧,如果想要了解更多軟件測試相關(guān)知識,請搜索多測師冻记。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睡毒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冗栗,更是在濱河造成了極大的恐慌演顾,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隅居,死亡現(xiàn)場離奇詭異钠至,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胎源,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門棉钧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乒融,你說我怎么就攤上這事掰盘∩忝酰” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵愧捕,是天一觀的道長奢驯。 經(jīng)常有香客問我,道長次绘,這世上最難降的妖魔是什么瘪阁? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮邮偎,結(jié)果婚禮上管跺,老公的妹妹穿的比我還像新娘。我一直安慰自己禾进,他們只是感情好豁跑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泻云,像睡著了一般艇拍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宠纯,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天卸夕,我揣著相機(jī)與錄音,去河邊找鬼婆瓜。 笑死快集,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的廉白。 我是一名探鬼主播个初,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒙秒!你這毒婦竟也來了勃黍?” 一聲冷哼從身側(cè)響起宵统,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤晕讲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后马澈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓢省,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年痊班,在試婚紗的時候發(fā)現(xiàn)自己被綠了勤婚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡涤伐,死狀恐怖馒胆,靈堂內(nèi)的尸體忽然破棺而出缨称,到底是詐尸還是另有隱情,我是刑警寧澤祝迂,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布睦尽,位于F島的核電站,受9級特大地震影響型雳,放射性物質(zhì)發(fā)生泄漏当凡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一纠俭、第九天 我趴在偏房一處隱蔽的房頂上張望沿量。 院中可真熱鬧,春花似錦冤荆、人聲如沸朴则。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佛掖。三九已至,卻和暖如春涌庭,著一層夾襖步出監(jiān)牢的瞬間芥被,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工坐榆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拴魄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓席镀,卻偏偏與公主長得像匹中,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子豪诲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容