亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

內(nèi)存訪問的在不同的訪問場(chǎng)景下延時(shí)究竟是個(gè)什么表現(xiàn)

冬至配餃子 ? 來源:開發(fā)內(nèi)功修煉 ? 作者:張彥飛allen ? 2022-08-30 16:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

《內(nèi)存隨機(jī)訪問也比順序慢,帶你深入理解內(nèi)存IO過程》一文中,我們理解了內(nèi)存IO的內(nèi)部實(shí)現(xiàn)過程,知道了內(nèi)存的隨機(jī)IO比順序IO要慢,并對(duì)延遲時(shí)間進(jìn)行了大概的估算。那么我們今天來用代碼的方式來實(shí)踐一下,看看在我們的項(xiàng)目工程中,內(nèi)存訪問的在不同的訪問場(chǎng)景下延時(shí)究竟是個(gè)什么表現(xiàn)。

1、先測(cè)順序IO情況

測(cè)試原理就是定義一個(gè)指定大小的double(8字節(jié))數(shù)組,然后以指定的步長(zhǎng)去循環(huán)。這里面的變量有兩個(gè)。核心代碼如下:

poYBAGMNz2mAZF06AABxRIyCwls569.png

在這個(gè)核心代碼的基礎(chǔ)上,我們有兩個(gè)可調(diào)節(jié)變量:

一是數(shù)組大小,數(shù)組越小,高速緩存命中率越高,平均延時(shí)就會(huì)越低。

二是循環(huán)步長(zhǎng),步長(zhǎng)越小,順序性越好,同樣也會(huì)增加緩存命中率,平均延時(shí)也低。我們?cè)跍y(cè)試的過程中采取的辦法是,固定其中一個(gè)變量,然后動(dòng)態(tài)調(diào)節(jié)另外一個(gè)變量來查看效果。

另外說明一下,這個(gè)代碼測(cè)試中考慮的幾個(gè)額外的開銷的處理情況。

1.加法開銷:由于加法指令簡(jiǎn)單,一個(gè)CPU周期就可完成,CPU周期比內(nèi)存周期要快,所以暫且忽略它。
2.耗時(shí)統(tǒng)計(jì):這涉及到高開銷的系統(tǒng)調(diào)用,本實(shí)驗(yàn)通過跑1000次取一次耗時(shí)的方式來降低影響。

場(chǎng)景一:固定數(shù)組大小2K,調(diào)節(jié)步長(zhǎng)

pYYBAGMNz3-Ac42ZAAA2xVT2MPg658.png

數(shù)組足夠小的時(shí)候,L1 cache全部都能裝的下。內(nèi)存IO發(fā)生較少,大部分都是高效的緩存IO,所以我這里看到的內(nèi)存延時(shí)只有1ns左右,這其實(shí)只是虛擬地址轉(zhuǎn)換+L1訪問的延時(shí)。

場(chǎng)景二:固定步長(zhǎng)為8,數(shù)組從32K到64M

poYBAGMNz5iACkyjAAA5DK1zPEY968.png

當(dāng)數(shù)組越來越大,Cache裝不下,導(dǎo)致穿透高速緩存,到內(nèi)存實(shí)際IO的次數(shù)就會(huì)變多,平均耗時(shí)就增加

場(chǎng)景三:步長(zhǎng)為32,數(shù)組從32K到64M

poYBAGMNz62ANXyLAABDMDMN_4o231.png

和場(chǎng)景二相比,步長(zhǎng)變大以后,局部性變差,穿透的內(nèi)存IO進(jìn)一步增加。雖然數(shù)據(jù)量一樣大,但是平均耗時(shí)就會(huì)繼續(xù)有所上漲。不過雖然穿透增加,但由于訪問地址仍然相對(duì)比較連續(xù),所以即使發(fā)生內(nèi)存IO也絕大部分都是行地址不變的順序IO情況。所以耗時(shí)在9ns左右,和之前估算大致相符!

另外注意一個(gè)細(xì)節(jié),就是隨著數(shù)組從64M到32M變化的過程中。耗時(shí)有幾個(gè)明顯的下降點(diǎn),分別是8M,256K和32K。這是因?yàn)楸緳C(jī)的CPU的L1大小是32K,L2是256K,L3是12M。在數(shù)據(jù)集32K的時(shí)候,L1全能裝的下,所有基本都是高速緩存IO。256K的時(shí)候、8M的時(shí)候,雖然L1命中率下降,但是L2、L3訪問速度仍然比真正的內(nèi)存IO快。但是超過12M以后越多,真正的內(nèi)存IO就越來越多了。

2、再測(cè)隨機(jī)IO情況

在順序的實(shí)驗(yàn)場(chǎng)景里,數(shù)組的下標(biāo)訪問都是比較有規(guī)律地遞增。在隨機(jī)IO的測(cè)試中,我們要徹底打亂這個(gè)規(guī)律,提前隨機(jī)好一個(gè)下標(biāo)數(shù)組,實(shí)驗(yàn)時(shí)不停地訪問數(shù)組的各個(gè)隨機(jī)位置。

pYYBAGMNz72ASSnXAACFkWasV7E580.png

這實(shí)際比上面的實(shí)驗(yàn)多了一次內(nèi)存IO,但由于對(duì)random_index_arr的訪問時(shí)順序的,而且該數(shù)組也比較小。我們假設(shè)它全部能命中高速緩存,所以暫且忽略它的影響。

隨機(jī)實(shí)驗(yàn)場(chǎng)景:數(shù)組從32K到64M

pYYBAGMNz9KAdfHzAAA2C21U8jQ933.png

這次的數(shù)組訪問就沒有步長(zhǎng)的概念了,全部打亂,隨機(jī)訪問。當(dāng)數(shù)據(jù)集比較小的時(shí)候、L1、L2、L3還能抗一抗。但當(dāng)增加到16M、64M以后,穿透到內(nèi)存的IO情況會(huì)變多,穿透過去以后極大可能行地址也會(huì)變。在64M的數(shù)據(jù)集中,內(nèi)存的延時(shí)竟然下降到了38.4ns,和我們估算的也基本一致。

3、結(jié)論

有了實(shí)驗(yàn)數(shù)據(jù)的佐證,進(jìn)一步證實(shí)了《內(nèi)存隨機(jī)訪問也比順序慢,帶你深入理解內(nèi)存IO過程》的結(jié)論。內(nèi)存存在隨機(jī)訪問比順序訪問慢的多的情況,大概是4:1的關(guān)系。所以不要覺得內(nèi)存很快,就用起來太隨性了!



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11201

    瀏覽量

    222180
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3162

    瀏覽量

    76026
  • 高速緩存
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    11293
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    企業(yè)安全訪問網(wǎng)關(guān):ZeroNews反向代理

    花半天時(shí)間配置VPN賬號(hào)?!?這些場(chǎng)景您是否遇到過? 傳統(tǒng)的VPN(虛擬專用網(wǎng))在為企業(yè)提供遠(yuǎn)程接入能力的同時(shí),其 “全有或全無” 的粗放式網(wǎng)絡(luò)接入模式,已成為企業(yè)安全體系中的一個(gè)巨大裂縫。一旦接入,用戶就如同進(jìn)入了內(nèi)網(wǎng),訪問
    的頭像 發(fā)表于 10-14 10:50 ?120次閱讀
    企業(yè)安全<b class='flag-5'>訪問</b>網(wǎng)關(guān):ZeroNews反向代理

    遠(yuǎn)程訪問NAS不折騰,輕松獲取固定訪問地址!

    。 傳統(tǒng)方案通常需要公網(wǎng)IP或復(fù)雜的路由器設(shè)置,不僅成本高且操作繁瑣。 ZeroNews 無需公網(wǎng)IP、免配置路由器,三步即可實(shí)現(xiàn)NAS的遠(yuǎn)程訪問。 簡(jiǎn)易配置,快速生成固定訪問地址 以群暉DSM系統(tǒng)為例,遠(yuǎn)程訪問配置流程如下:
    的頭像 發(fā)表于 09-02 19:20 ?394次閱讀
    遠(yuǎn)程<b class='flag-5'>訪問</b>NAS不折騰,輕松獲取固定<b class='flag-5'>訪問</b>地址!

    RT-Thread SPI鏈?zhǔn)絺鬏敺欠?b class='flag-5'>訪問?揭秘致命陷阱!

    前言一、與RT-ThreadBSP的開發(fā)者溝通中,發(fā)現(xiàn)SPI設(shè)備驅(qū)動(dòng)輪詢(Polling)模式偶發(fā)出現(xiàn)非法訪問異常(如圖)問題復(fù)現(xiàn)場(chǎng)景
    的頭像 發(fā)表于 06-24 19:38 ?1380次閱讀
    RT-Thread SPI鏈?zhǔn)絺鬏敺欠?b class='flag-5'>訪問</b>?揭秘致命陷阱!

    FOC電機(jī)控制究竟該如何學(xué)?

    學(xué)習(xí)FOC電機(jī)控制究竟是學(xué)哪些內(nèi)容? 電機(jī)知識(shí) 軟件知識(shí) 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一哦~)
    發(fā)表于 05-09 14:09

    電池電量計(jì)的通信、配置、數(shù)據(jù)內(nèi)存訪問以及相關(guān)代碼示例

    德州儀器(Texas Instruments)發(fā)布的關(guān)于電池電量計(jì)通信的應(yīng)用報(bào)告,主要介紹了電池電量計(jì)的通信、配置、數(shù)據(jù)內(nèi)存訪問以及相關(guān)代碼示例等內(nèi)容,為開發(fā)者提供了全面的技術(shù)指導(dǎo)。電量計(jì)通信
    發(fā)表于 03-11 15:45 ?0次下載

    室內(nèi)導(dǎo)航究竟是如何實(shí)現(xiàn)的

    作為物聯(lián)網(wǎng)智能硬件的引領(lǐng)者,云里物里當(dāng)然不是來聊電影的,而是想借此機(jī)會(huì),和大家探討一:室內(nèi)導(dǎo)航究竟是如何實(shí)現(xiàn)的?它背后的技術(shù)原理是什么?接下來,讓我們一起揭開室內(nèi)導(dǎo)航的神秘面紗。
    的頭像 發(fā)表于 02-12 13:50 ?823次閱讀

    ADS1298R PACE_OUT1和PACE_OUT2這兩條引腿究竟是輸入還是輸出?有什么用?怎樣使用?

    PACE_OUT1和PACE_OUT2這兩條引腿究竟是輸入還是輸出?有什么用?怎樣使用?
    發(fā)表于 02-12 07:56

    Impero:革新安全遠(yuǎn)程訪問方案

    通過不安全的遠(yuǎn)程接入點(diǎn)發(fā)生的。這就是為什么世界上一些最大的銀行、金融機(jī)構(gòu)、零售商、制造商、學(xué)校和政府組織已經(jīng)轉(zhuǎn)向 Impero 尋求安全的遠(yuǎn)程訪問解決方案,這些解決方案可以不增加網(wǎng)絡(luò)漏洞的情況提供敏捷
    的頭像 發(fā)表于 02-10 11:42 ?711次閱讀
    Impero:革新安全遠(yuǎn)程<b class='flag-5'>訪問</b>方案

    SQLite數(shù)據(jù)訪問組件

    SQLite 數(shù)據(jù)訪問組件 SQLite 數(shù)據(jù)訪問組件 (LiteDAC) 是一個(gè)組件庫 它提供從 Delphi 和 C++ Builder 到 SQLite 的原生連接,包括 Community
    的頭像 發(fā)表于 02-08 11:48 ?752次閱讀
    SQLite數(shù)據(jù)<b class='flag-5'>訪問</b>組件

    EE-62:C語言中訪問短字內(nèi)存

    電子發(fā)燒友網(wǎng)站提供《EE-62:C語言中訪問短字內(nèi)存.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:02 ?0次下載
    EE-62:<b class='flag-5'>在</b>C語言中<b class='flag-5'>訪問</b>短字<b class='flag-5'>內(nèi)存</b>

    教你三招異地訪問NAS

    NAS作為家庭或企業(yè)存儲(chǔ)數(shù)據(jù)的神器,能夠讓我們隨時(shí)隨地訪問存儲(chǔ)在其中的文件。但當(dāng)我們身處異地時(shí),如何高效、安全地訪問NAS卻成了一個(gè)難題。別擔(dān)心,節(jié)點(diǎn)小寶來幫你! 第一招:利用內(nèi)網(wǎng)穿透功能 首先,
    的頭像 發(fā)表于 01-02 11:26 ?1713次閱讀
    教你三招異地<b class='flag-5'>訪問</b>NAS

    TMS320C6000 DSP增強(qiáng)型直接內(nèi)存訪問(EDMA)控制器參考指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 DSP增強(qiáng)型直接內(nèi)存訪問(EDMA)控制器參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 17:24 ?0次下載
    TMS320C6000 DSP增強(qiáng)型直接<b class='flag-5'>內(nèi)存</b><b class='flag-5'>訪問</b>(EDMA)控制器參考指南

    如何PC訪問內(nèi)網(wǎng)及VPN

    訪問VPN的工作原理
    發(fā)表于 12-23 15:07 ?12次下載

    如何使用內(nèi)存加速存儲(chǔ)訪問速度

    本篇文章是首爾大學(xué)發(fā)表FAST 2023上的文章。隨著閃存容量的增加,邏輯地址到物理地址的映射表項(xiàng)也相應(yīng)增加。映射表項(xiàng)通常存放在設(shè)備控制器中的SRAM來加速訪問。然而由于成本問題SRAM一直無法
    的頭像 發(fā)表于 12-19 10:54 ?977次閱讀
    如何使用<b class='flag-5'>內(nèi)存</b>加速存儲(chǔ)<b class='flag-5'>訪問</b>速度

    嵌入式和人工智能究竟是什么關(guān)系?

    嵌入式和人工智能究竟是什么關(guān)系? 嵌入式系統(tǒng)是一種特殊的系統(tǒng),它通常被嵌入到其他設(shè)備或機(jī)器中,以實(shí)現(xiàn)特定功能。嵌入式系統(tǒng)具有非常強(qiáng)的適應(yīng)性和靈活性,能夠根據(jù)用戶需求進(jìn)行定制化設(shè)計(jì)。它廣泛應(yīng)用于各種
    發(fā)表于 11-14 16:39