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倍

    推荐阅读