cpu —>內存—>硬盤這種方式是不是更慢?
這是基本知識 。
所有的存儲器都是為了給CPU提供數據用的 , CPU在電腦中是最快的部件 , 能越快取得數據就越能發揮出它的性能 。
存儲器除了內存和硬盤 , 還有寄存器 , 一級緩存 , 二級緩存 。速度從寄存器 , 一二級緩存 , 內存 , 硬盤遞減 。
先放到內存 , 比直接從硬盤讀快的原因有兩點 , 1內存的速度比硬盤快很多很多 , 2統計學上不是所有數據都要頻繁從內存調入調出 , 有一部分數據大概率常駐內存 。
其他網友觀點凡是涉及外部設備IO的操作 , 一定是慢的 , 這些操作包括磁盤讀寫、顯示、打印設備輸出、輸入設備輸入等 , 但是現代操作系統有智能預測算法 , 會根據統計經驗估計程序可能需要讀取什么數據 , 事先從外設中讀入相關數據到內存 , 這樣CPU就可以從內存中讀取數據 , 內存中讀寫是僅次于寄存器速度最快的 。輸出也是這般 , 把需要輸出的數據集中在內存中 , 然后寫出 。這種技術有點像賭博 , 看命中率 , 操作系統高明的 , 命中率較高 。不過 , 更現代的計算機設備預測優化技術已經不僅僅是操作系統去做的 , 甚至硬件自己也有各種優化手段 , 比如高速硬盤配備的緩沖區 。這些優化技巧 , 關鍵是不需要應用程序自己去做(傳統是C類程序自己進行的 , 所謂C程序員的牛逼在于他們懂這些細節和算法) , 是在程序進程調度之外各種軟硬件配合的 , 像硬件緩沖這樣都不占CPU時間 , 速度當然更快 。不過 , 現階段編程技術的發展 , 主趨勢是不要程序員去考慮這些手段 , 編譯器、解釋器、框架、操作系統、硬件等都有適當的配合 , 不需要程序員自作聰明去自主優化 , 有時手動優化適得其反 , 你只要按照人類思維邏輯寫程序即可 , 換言之 , 不要刻意優化 , 傳統的各種優化技巧大多數已失效 。
其他網友觀點比如我要加載1000個1KB的文件 , 每次隨機讀取1個文件 。
每次去硬盤讀取 , 需要尋址1秒 , 讀取0.1秒;從內存讀取不用尋址 , 讀取0.01秒 。
【cpu —>內存—>硬盤這種方式是不是更慢?】從硬盤讀1000次 , 需要1100秒;先加載到內存 , 一次性需要101秒 , 然后從內存讀取 , 消耗消耗10秒 , 總共111秒 , 快了10倍
推薦閱讀
- 請問價位在1700—2300,像素高的,有哪些手機可以推薦?
- 教你如何考驗天秤座男人的心
- 小尺寸、大用途、海量資源、多級調光——墨案電紙書mix 7上手體驗
- 《Quellkartoffel un Dupp-Dupp》MP3歌詞-Adam & Eve
- 有什么價格3000—4000左右的雙卡手機推薦?
- [白羊]面對脫發反應&補救措施
- 6個生活細節助你狂甩贅肉
- 【2019年9月22日——9月28日】獅子座情感運勢
- 美女私房菜—蘆筍牛肉(烹飪技巧)
- 《Jelly》MP3歌詞-Red Velvet - IRENE & SEULGI
