国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

內存訪問的在不同的訪問場景下延時究竟是個什么表現

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

掃碼添加小助手

加入工程師交流群

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

1、先測順序IO情況

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

poYBAGMNz2mAZF06AABxRIyCwls569.png

在這個核心代碼的基礎上,我們有兩個可調節變量:

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

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

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

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

場景一:固定數組大小2K,調節步長

pYYBAGMNz3-Ac42ZAAA2xVT2MPg658.png

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

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

poYBAGMNz5iACkyjAAA5DK1zPEY968.png

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

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

poYBAGMNz62ANXyLAABDMDMN_4o231.png

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

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

2、再測隨機IO情況

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

pYYBAGMNz72ASSnXAACFkWasV7E580.png

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

隨機實驗場景:數組從32K到64M

pYYBAGMNz9KAdfHzAAA2C21U8jQ933.png

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

3、結論

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



審核編輯:劉清

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

    關注

    68

    文章

    11279

    瀏覽量

    225007
  • 內存
    +關注

    關注

    9

    文章

    3210

    瀏覽量

    76376
  • 高速緩存
    +關注

    關注

    0

    文章

    30

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是 SASE?| 安全訪問服務邊緣

    安全訪問服務邊緣(SASE)是一種整合網絡連接與網絡安全功能于一平臺的架構。這種架構與傳統的企業網絡相比,具有顯著的差異。SASE架構將網絡控制放置云邊緣,而不是傳統企業數據中心,這使得企業能夠
    的頭像 發表于 02-02 18:28 ?356次閱讀

    本地智能家居系統ESPHome,實現遠程訪問調試

    ESPHome 是一開源固件框架,支持通過 YAML 配置實現智能家居自動化,可本地部署并公網訪問,便于遠程開發。
    的頭像 發表于 12-30 14:48 ?1257次閱讀
    本地智能家居系統ESPHome,實現遠程<b class='flag-5'>訪問</b>調試

    C語言訪問某特定內存位置

    嵌入式系統經常具有要求程序員去訪問某特定的內存位置的特點。某工程中,要求設置一絕對地址為0x67a9的整型變量的值為0xaa66。編譯器是一純粹的ANSI編譯器。寫代碼去完成這一任
    發表于 12-22 15:42

    32位究竟指什么呢?

      1. 更高的性能   由于能夠一次性處理更多的數據,32位單片機執行復雜計算任務時表現更為出色。它能夠更快速、更高效地運行復雜的算法和應用程序。   2. 更大的內存空間   32位單片機能夠直接
    發表于 11-21 06:32

    電能質量在線監測裝置的數據云端的訪問權限是如何管控的?

    電能質量在線監測裝置的數據云端的訪問權限管控,是通過 角色分級、動態驗證、加密隔離、智能策略 等多重機制構建的立體化防護體系,其核心目標是確保數據 “只能被授權的人、授權的時間、以授權的方式
    的頭像 發表于 10-30 09:45 ?271次閱讀

    企業安全訪問網關:ZeroNews反向代理

    花半天時間配置VPN賬號。” 這些場景您是否遇到過? 傳統的VPN(虛擬專用網)在為企業提供遠程接入能力的同時,其 “全有或全無” 的粗放式網絡接入模式,已成為企業安全體系中的一巨大裂縫。一旦接入,用戶就如同進入了內網,訪問
    的頭像 發表于 10-14 10:50 ?329次閱讀
    企業安全<b class='flag-5'>訪問</b>網關:ZeroNews反向代理

    qkey軟件包在內核V5.02運行出錯是哪里的問題?

    ) == RT_Object_Class_Memory) assertion failed at function:rt_smem_alloc, line number:290 ; 然后內核改成V4.1.1就沒任何問題。 因為v5.0.2引入backtrace也始終有編譯問題,所以不好跟蹤
    發表于 09-15 07:46

    遠程訪問NAS不折騰,輕松獲取固定訪問地址!

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

    IR615怎么禁止設備訪問外網?

    IR615使用VPN連到云平臺,最近發現4G流量使用激增,估計其它設備蹭網,怎么設置一防止其它設備通過路由器訪問外網,多謝
    發表于 08-06 06:31

    禁用直接LPB訪問,如何與TC3x 上的 SWAPEN 協同工作?

    禁用直接 LPB 訪問 (xDDIS) 位可通過 TC37x 的 FLASHCON4 和 PROCONTP 進行配置。 SOTA 場景中,我們應該如何配置上述兩寄存器? 如果我啟用
    發表于 07-29 10:26

    RT-Thread SPI鏈式傳輸非法訪問?揭秘致命陷阱!

    前言一、與RT-ThreadBSP的開發者溝通中,發現SPI設備驅動輪詢(Polling)模式偶發出現非法訪問異常(如圖)問題復現場景
    的頭像 發表于 06-24 19:38 ?1658次閱讀
    RT-Thread SPI鏈式傳輸非法<b class='flag-5'>訪問</b>?揭秘致命陷阱!

    超聲波液位計究竟是什么?

    液位計
    jzyb
    發布于 :2025年06月03日 16:10:12

    FOC電機控制究竟該如何學?

    學習FOC電機控制究竟是學哪些內容? 電機知識 軟件知識 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、點贊、評論支持一哦~)
    發表于 05-09 14:09

    工程師在產品選型的時究竟是選CAN還是CANFD接口卡呢?

    很多工程師在產品選型的時候會疑惑,究竟是選CAN接口卡還是CANFD接口卡呢?兩者之間有什么區別呢?影響選擇的關鍵因素又是什么?我們今天一個一個來拆解。1.波特率傳統的CAN接口卡僅有一波特率,即
    的頭像 發表于 03-21 11:37 ?1002次閱讀
    工程師在產品選型的時<b class='flag-5'>究竟是</b>選CAN還是CANFD接口卡呢?

    電池電量計的通信、配置、數據內存訪問以及相關代碼示例

    德州儀器(Texas Instruments)發布的關于電池電量計通信的應用報告,主要介紹了電池電量計的通信、配置、數據內存訪問以及相關代碼示例等內容,為開發者提供了全面的技術指導。電量計通信
    發表于 03-11 15:45 ?1次下載