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倍

    推薦閱讀