色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

在你的應用程序里內存的訪問帶寬能夠達到多少?

冬至配餃子 ? 來源:開發內功修煉 ? 作者:張彥飛allen ? 2022-08-30 16:58 ? 次閱讀

帶寬是存儲系統一個的一個非常重要的衡量指標,內存帶寬指的是CPU從內存讀取或寫入數據到內存的速率。我們今天來思考一個問題,在你的應用程序里內存的訪問帶寬能夠達到多少?

1、各代內存規格

理論上內存帶寬的計算公式是:Band Width = Speed * Data Width。在這個公式的基礎上,我們來看一下各代規格的內存帶寬表現。

pYYBAGMN0JaAP-gQAACzK2Ayvr8242.png

圖1 各代內存帶寬規格

從上圖來看,DDR3代的內存 DDR3代1066MHz的帶寬都已經達到了8.5GB/s, DDR4代3200MHz更是達到了驚人的25.6G。廠家在進行銷售的時候也都是用這個公式來算,言外之意就是告訴你:“我家的產品非常快,大家趕快來買啊!”

廠家這么宣傳似乎也不算錯,但是有誘導性的謊言在其中。廠家這個數據的基礎是內存嚴格以順序IO的方式工作,而且把傳輸的內存地址也當數據來看,進而計算出的結果。但我們在《內存隨機訪問也比順序慢,帶你深入理解內存IO過程》中明白了的是,內存在并一定是所有的Data Speed周期都在源源不斷往外吐數據。在CPU傳入了行地址后,內存打開一行需要tRCD+tRP個時鐘周期的延遲。輸入列地址后,又需要等待CL個時鐘周期。而內存作為易失性存儲元器件,又需要定時對所有的行進行充電,來保證數據不丟失。所以,在實踐中,我們并不是總是能夠達到廠家宣傳的理論帶寬值。

注意:理論帶寬值計算時采用的是內存的Speed,也就是其數據頻率。而內存的延遲呢,用的是時鐘周期。現代的內存在時鐘周期的上沿和下沿都可以傳輸數據,所以數據頻率比Speed又慢了一半。對于筆者Speed為1067MHz的內存條,其時鐘頻率是553MHz。

***說過,實踐是檢驗真理的唯一標準。我們今天就來進行一下實際的測試,看看內存的到底每秒能給我們吐出多少的數據。和前文《實際測試內存在順序IO和隨機IO時的訪問延時差異》的測試方法類似,我們今天對方法進行下小改動,用它來測試帶寬。

2、順序IO情況核心測試方法

測試代碼主體上和延遲測試差不多,定義一個指定大小的數組,然后以指定步長對其進行訪問。

poYBAGMN0KSAadyyAABVCCQzOc0031.png

考慮到內存對齊能提高性能,所以公平起見,我們每次都是按內存位寬去取的(一個double 8個字節,正好是一個內存位寬)。帶寬就是一秒內訪問過的字節總數,所以我們通過如下代碼進行計算。

result = total_accessed_bytes * 1000 / used_microseconds;

3、順序IO情況帶寬測試結果

筆者的服務器上的內存條是DDR3,1067MHz,延遲參數為7-7-7-24。我們進行了多場景的測試。

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

poYBAGMN0L6AaBI7AAA10fOLvZw392.png

數組為2k,足夠小到L1 cache全部都能裝的下。這時候其實基本實際內存IO發生的很少,大部分都是更高效的L1 cache的IO,在CPU內部就完成了。但最高值也才6G而已,也沒有達到廠家宣稱的8GB。

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

pYYBAGMN0NOAbjKSAABDuNLdnFo811.png

數組越大,Cache越裝不下,數據訪問的IO會更多地往后穿透到L2、L3和內存。L1、L2、L3和內存IO的性能依次遞減,因此數組越大,平均帶寬就會越低。

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

poYBAGMN0OiAeO6SAABChIbWD64157.png

步長增加后,穿透到內存的次數進一步增加,帶寬進一步下降。這個時候,我們應用程序視角看到的數據帶寬已經下降到1GB以下了。

4、再測隨機IO情況

前面的測試情況,雖然步長也在變化,但都是有序遞增。這樣內存的連續兩次IO之間,雖然列地址會變,但是行地址極有可能不發生變化,因此效率還是算比較高。我們這次是來徹底隨機進行訪問,再來看一下。

pYYBAGMN0PmAQ8EyAAA6-fOd-wk416.png

當數組比較小的時候,雖然亂序訪問,但是cache能兜住,因此內存IO實際上發生的很少。但當數組增加到64M的時候,再加上哪一級Cache都兜不住了。再加上訪問又足夠隨機,因此都穿透到了內存,而且行的行地址也極大可能發生變化。這時,內存帶寬竟然下降到了474M。

5、結論

所以內存的帶寬并沒有你想象的那么快,在隨機IO工作模式的情況下,帶寬只有474M而已。現在SSD固態硬盤順序IO也差不多能達到這個數量級了。所以,我們以后不要魯莽地說內存比硬盤要快很多。快不快,關鍵取決于你怎么用!



審核編輯:劉清

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

    關注

    11

    文章

    714

    瀏覽量

    65440
  • 帶寬
    +關注

    關注

    3

    文章

    952

    瀏覽量

    41016
  • 時鐘
    +關注

    關注

    11

    文章

    1746

    瀏覽量

    131669
  • 存儲系統
    +關注

    關注

    2

    文章

    413

    瀏覽量

    40892
收藏 人收藏

    評論

    相關推薦

    AWTK-WEB 快速入門(4) - JS Http 應用程序

    導讀XMLHttpRequest改變了Web應用程序與服務器交換數據的方式,fetch是其繼任者。本文介紹一下如何使用JS語言開發AWTK-WEB應用程序,并用fetch訪問遠程數據。用AWTKDesigner新建一個應用程
    的頭像 發表于 01-22 11:31 ?70次閱讀
    AWTK-WEB 快速入門(4) - JS Http <b class='flag-5'>應用程序</b>

    ANACONDA——關于發布數據應用程序的新簡單方法

    與 Anaconda 的云筆記本服務無縫集成,為用戶提供了一種輕松共享筆記本結果的方式,并讓其他人也可以隨意的訪問它們。 下面我們來了解關于這項新功能的實際應用: 這項功能與 Panel 的多功能性相結合,將徹底改變您發布數據應用程序的方式。使用這個強大的工具,為共享和協
    的頭像 發表于 01-17 11:39 ?91次閱讀
    ANACONDA——關于發布數據<b class='flag-5'>應用程序</b>的新簡單方法

    通過Skyvia Connect SQL終端節點訪問任何數據

    作為網關 ADO.NET 通過最知名和最廣泛使用的 .NET 數據訪問接口將不同的數據庫和云應用程序連接到 .NET 數據相關程序和技術。 .NET Framework 支持 我們的 ADO.NET
    的頭像 發表于 01-02 09:31 ?101次閱讀
    通過Skyvia Connect SQL終端節點<b class='flag-5'>訪問</b>任何數據

    南亞科技與補丁科技攜手開發定制超高帶寬內存

    近日,臺灣地區知名的DRAM內存制造商南亞科技宣布,已與專業DRAM設計公司補丁科技達成戰略合作,共同致力于定制超高帶寬內存(Customized Ultra-High-Bandwidth
    的頭像 發表于 12-20 14:28 ?199次閱讀

    如何使用內存加速存儲訪問速度

    增長,這使得其中只能存放很少量的數據表項。而為了解決這一問題,現有工作使用部分主機端內存(high performance booster, HPB)來緩存映射表項。然而文章中發現,現有的HPB管理策略并不能夠很好的提升用戶體驗。這是因為現有的管理策略通常可能會將前臺應用
    的頭像 發表于 12-19 10:54 ?300次閱讀
    如何使用<b class='flag-5'>內存</b>加速存儲<b class='flag-5'>訪問</b>速度

    AWTK-WEB 快速入門(1) - C 語言應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用C語言開發AWTK-WEB應用程序。用AWTKDesigner新建一個應用程序
    的頭像 發表于 11-27 11:46 ?264次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應用程序</b>

    什么是RAM內存 RAM內存對電腦性能的影響

    所有存儲的數據。RAM的主要作用是提供快速的數據訪問,以便CPU(中央處理器)能夠高效地執行程序和處理任務。 RAM內存對電腦性能的影響 RAM對電腦性能的影響是顯著的,以下是幾個關鍵
    的頭像 發表于 11-11 09:38 ?2778次閱讀

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

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

    有沒有能夠接受20M帶寬或者更高帶寬的比較器型號?

    最近在做一個信號整形,需要把正弦波整成方波,想請教一下有沒有能夠接受20M帶寬或者更高帶寬的比較器型號?或者是有沒有其他較好的方案能處理呢?
    發表于 08-20 07:38

    opa859有單位增益和增益帶寬積,并且單位增益帶寬是增益帶寬積的兩倍,為什么?

    opa859有單位增益和增益帶寬積,并且單位增益帶寬是增益帶寬積的兩倍,為什么呢?正常應該是相等,或者增益帶寬積大于單位增益
    發表于 08-02 07:34

    租用服務器時,從哪些方面來評測是否達標的?

    在租用服務器時,可以從以下幾個方面來評測是否達標: 1、硬件配置: CPU:了解服務器的處理器型號、核心數和頻率,確保其能夠滿足應用程序的性能需求。 內存:了解服務器的內存容量和類型,
    的頭像 發表于 06-12 10:50 ?291次閱讀

    應用程序中的服務器錯誤怎么解決?

    在使用應用程序時,可能會遇到服務器錯誤的問題。這種錯誤通常會導致應用程序無法正常運行 ,給用戶帶來不便。下面將介紹應用程序中的服務器錯誤及其解決方法,幫助您快速解決這一問題。
    的頭像 發表于 03-12 15:13 ?6437次閱讀

    如何在ModusToolbox?中檢查和設置應用程序內存地址?

    如何在ModusToolbox?中檢查和設置應用程序內存地址?
    發表于 03-01 10:16

    CW32L052 DMA直接內存訪問

    CW32L052支持DMA(Direct Memory Access),即直接內存訪問,無需CPU干預,實現高速數據傳輸。數據的傳輸可以發生在: ? 外設和內存之間 :例如ADC采集數據到內存
    的頭像 發表于 02-28 16:48 ?972次閱讀
    CW32L052 DMA直接<b class='flag-5'>內存</b><b class='flag-5'>訪問</b>

    SK海力士加大高帶寬內存生產投入

    SK海力士近日宣布,將進一步擴大高帶寬內存生產設施的投資,以滿足高性能AI產品市場的不斷增長需求。
    的頭像 發表于 01-29 16:54 ?1020次閱讀
    主站蜘蛛池模板: 高h全肉图| 韩国无遮羞禁动漫在线观看| 伊人色综合久久天天网| 亚洲国产欧美国产综合在线| 添加一点爱与你电视剧免费观看| 日韩一区二区三区视频在线观看| 欧美黑人巨大xxxxx| 欧美人与动交zOZ0| 欧美精品一区二区三区四区 | 色青青草原桃花久久综合| 欧美乱妇日本无乱码特黄大片| 欧美高清一区二区三| 日韩欧美 亚洲视频| 亚洲 欧美 另类 中文 在线| 亚洲免费在线视频| 10分钟免费观看视频| 免费三级播放器| 男人天堂999| 日韩在线 无码 精品| 无限资源好看片2019免费观看| 天天国产在线精品亚洲| 亚洲国产精品综合久久一线| 伊人久久精品AV一区二区| 善良的小峓子2在钱免费中文字| 日韩中文网| 亚洲H成年动漫在线观看不卡| 伊人热人久久中文字幕| 99热在线视频| 国产精品一区二区免费| 浪荡女天天不停挨CAO日常视 | 国产亚洲精品久久精品69| 九九国产精品成人AV麻豆| 免费被靠视频动漫| 试看做受120秒免费午夜剧场| 亚洲欧美国产综合在线一区| 99福利影院| 99久久久免费精品国产| 国产精品18久久久久网站 | 欧美性色xo影院69| 亚洲第一天堂无码专区| 99re精品视频在线播放视频|