在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

冬至配餃子 ? 來源:開發(fā)內(nèi)功修煉 ? 作者:張彥飛allen ? 2022-08-30 16:53 ? 次閱讀

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

1、先測順序IO情況

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

poYBAGMNz2mAZF06AABxRIyCwls569.png

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

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

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

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

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

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

pYYBAGMNz3-Ac42ZAAA2xVT2MPg658.png

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

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

poYBAGMNz5iACkyjAAA5DK1zPEY968.png

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

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

poYBAGMNz62ANXyLAABDMDMN_4o231.png

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

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

2、再測隨機IO情況

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

pYYBAGMNz72ASSnXAACFkWasV7E580.png

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

隨機實驗場景:數(shù)組從32K到64M

pYYBAGMNz9KAdfHzAAA2C21U8jQ933.png

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

3、結論

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



審核編輯:劉清

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

    關注

    68

    文章

    10918

    瀏覽量

    213174
  • 內(nèi)存
    +關注

    關注

    8

    文章

    3070

    瀏覽量

    74395
  • 高速緩存
    +關注

    關注

    0

    文章

    30

    瀏覽量

    11088
收藏 人收藏

    評論

    相關推薦

    室內(nèi)導航究竟是如何實現(xiàn)的

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《EE-62:C語言中訪問短字內(nèi)存.pdf》資料免費下載
    發(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>

    嵌入式和人工智能究竟是什么關系?

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

    PCM1861 INT腳究竟是輸出還是輸入?

    這個芯片activce或是idle. 是否有人解釋,INT腳究竟是輸出還是輸入。我希望是輸出,我需要讀取到是否有analog audio輸入的信息。 或者,輸入輸出與否還要靠其他什么地方設置? 盼望有人回復解答,不勝感激!
    發(fā)表于 10-29 07:29

    什么是ACL訪問控制列表

    通過之前的文章簡單介紹了華為交換機如何配置SSH遠程登錄,一些工作場景,需要特定的IP地址段能夠SSH遠程訪問和管理網(wǎng)絡設備,這樣又需要怎么配置呢?下面通過一簡單的案例帶著大家去了
    的頭像 發(fā)表于 10-10 14:35 ?379次閱讀
    什么是ACL<b class='flag-5'>訪問</b>控制列表

    揭秘貼片功率電感發(fā)燙究竟是不是燒壞了

    電子發(fā)燒友網(wǎng)站提供《揭秘貼片功率電感發(fā)燙究竟是不是燒壞了.docx》資料免費下載
    發(fā)表于 09-30 14:44 ?0次下載

    電感器線徑究竟是粗好還是細好

    電子發(fā)燒友網(wǎng)站提供《電感器線徑究竟是粗好還是細好.docx》資料免費下載
    發(fā)表于 09-20 11:25 ?0次下載

    這個機子內(nèi)存是不是集成到板子上了,哪里可以插接口訪問內(nèi)存

    我這個機子內(nèi)存是不是集成到板子上了呀,哪里可以插接口訪問內(nèi)存呀。
    發(fā)表于 08-30 09:04

    tas5756m使用GPIO口加內(nèi)部PLL產(chǎn)生MCLK的方法究竟是怎么樣的?

    tas5756m使用GPIO口加內(nèi)部PLL產(chǎn)生MCLK的方法究竟是怎么樣的?
    發(fā)表于 08-19 06:06

    請問cH340G的TX引腳電平究竟是3v還是5v?

    用CD34G來實現(xiàn)usb轉(zhuǎn)串口的時候,直接用usb口的5v作為電源電壓,它的tx引腳輸出的高電平究竟是5v還是3v,我實測是3v,但網(wǎng)上有的人是5v,想進一步得到大家的確認。
    發(fā)表于 05-14 08:15

    STM32擦除后數(shù)據(jù)究竟是0x00還是0xff ?

    STM32擦除后數(shù)據(jù)究竟是0x00還是0xff ,百度查了許多發(fā)現(xiàn)大多數(shù)都是0xff的多,都說SD卡(TF)儲存介質(zhì)是Flash 所以擦除后為0xff,但是我遇到了讀出來的數(shù)據(jù)是0x00的情況,為什么呢
    發(fā)表于 04-18 07:59

    吸塵器究竟是如何替你“吃灰”的【其利天下技術】

    如今,吸塵器已成為大多數(shù)人居家必備的小家電產(chǎn)品,那么說起吸塵器,你對吸塵器有了解多少呢?不知道大家知不知道它的原理是什么?今天我們就來說一說吸塵器究竟是如何替你“吃灰”的。
    的頭像 發(fā)表于 03-07 21:17 ?976次閱讀
    吸塵器<b class='flag-5'>究竟是</b>如何替你“吃灰”的【其利天下技術】

    CW32L052 DMA直接內(nèi)存訪問

    傳輸方式常見于需要將外設采集的數(shù)據(jù)快速傳輸?shù)?b class='flag-5'>內(nèi)存進行處理的應用。 ? 內(nèi)存內(nèi)存之間 :例如在兩不同的數(shù)組之間傳輸數(shù)據(jù),或者不同的
    的頭像 發(fā)表于 02-28 16:48 ?1002次閱讀
    CW32L052 DMA直接<b class='flag-5'>內(nèi)存</b><b class='flag-5'>訪問</b>

    KVM矩陣遠程辦公場景中的應用:實現(xiàn)靈活的服務器訪問與控制

    隨著遠程辦公的興起,如何確保員工能夠安全、高效地訪問和操作服務器成為了企業(yè)面臨的重要問題。KVM矩陣作為一種先進的遠程管理解決方案,以其靈活性和高效性遠程辦公場景中發(fā)揮著重要作用。本文將探討KVM
    的頭像 發(fā)表于 02-18 14:49 ?566次閱讀
    主站蜘蛛池模板: aika中文字幕永久在线 | 综合丁香 | 性色aⅴ闺蜜一区二区三区 性色成人网 | 噜色| 国产干美女 | 全亚洲最大的777io影院 | 国产片在线观看狂喷潮bt天堂 | 制服丝袜在线一区 | 亚洲综合色网站 | 久久天天躁狠狠躁夜夜不卡 | 又长又大又粗又硬3p免费视频 | 欧美色图在线观看 | 年轻人影院www你懂的 | 五月婷婷六月婷婷 | 亚洲爱v| 亚洲专区一路线二 | 一本二卡三卡四卡乱码二百 | 国产片无遮挡在线看床戏 | 亚洲偷自偷白图片 | 亚洲网在线 | 午夜视频福利在线 | 91大神精品全国在线观看 | 一本到卡二卡三卡福利 | 久久www免费人成高清 | 丁香婷婷色 | 2018天天拍拍拍免费视频 | 日本免费一区二区老鸭窝 | 四虎国产精品免费入口 | 日本高清视频wwww色 | 福利色播| 又色又污又爽又黄的网站 | 国产美女视频黄a视频免费全过程 | 天堂在线最新资源 | 免费在线观看污视频 | 国产精品永久免费 | 欧美黑人三级 | 夜夜爱夜夜做夜夜爽 | 一区二区三区无码高清视频 | a色在线 | 99热最新在线观看 | 九九精品国产 |