cpu —>内存—>硬盘这种方式是不是更慢?

cpu —>内存—>硬盘这种方式是不是更慢?

网友提问: cpu —>内存—>硬盘这种方式是不是更慢?   汇聚魔杖的回答: 这是基本知识。 所有的存储器都是为了给CPU提供数据用的,CPU在电脑中是最快的部件,能越快取得数据就越能发挥出它的性能。 存储器除了内存和硬盘,还有寄存器,一级...

网友提问:

cpu —>内存—>硬盘这种方式是不是更慢?

 

汇聚魔杖的回答:

这是基本知识。

所有的存储器都是为了给CPU提供数据用的,CPU在电脑中是最快的部件,能越快取得数据就越能发挥出它的性能。

存储器除了内存和硬盘,还有寄存器,一级缓存,二级缓存。速度从寄存器,一二级缓存,内存,硬盘递减。

先放到内存,比直接从硬盘读快的原因有两点,1内存的速度比硬盘快很多很多,2统计学上不是所有数据都要频繁从内存调入调出,有一部分数据大概率常驻内存。

其他网友观点

凡是涉及外部设备IO的操作,一定是慢的,这些操作包括磁盘读写、显示、打印设备输出、输入设备输入等,但是现代操作系统有智能预测算法,会根据统计经验估计程序可能需要读取什么数据,事先从外设中读入相关数据到内存,这样CPU就可以从内存中读取数据,内存中读写是仅次于寄存器速度最快的。输出也是这般,把需要输出的数据集中在内存中,然后写出。这种技术有点像赌博,看命中率,操作系统高明的,命中率较高。不过,更现代的计算机设备预测优化技术已经不仅仅是操作系统去做的,甚至硬件自己也有各种优化手段,比如高速硬盘配备的缓冲区。这些优化技巧,关键是不需要应用程序自己去做(传统是C类程序自己进行的,所谓C程序员的牛逼在于他们懂这些细节和算法),是在程序进程调度之外各种软硬件配合的,像硬件缓冲这样都不占CPU时间,速度当然更快。不过,现阶段编程技术的发展,主趋势是不要程序员去考虑这些手段,编译器、解释器、框架、操作系统、硬件等都有适当的配合,不需要程序员自作聪明去自主优化,有时手动优化适得其反,你只要按照人类思维逻辑写程序即可,换言之,不要刻意优化,传统的各种优化技巧大多数已失效。

其他网友观点

比如我要加载1000个1KB的文件,每次随机读取1个文件。

每次去硬盘读取,需要寻址1秒,读取0.1秒;从内存读取不用寻址,读取0.01秒。

从硬盘读1000次,需要1100秒;先加载到内存,一次性需要101秒,然后从内存读取,消耗消耗10秒,总共111秒,快了10倍

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

原文链接:https://www.1588tao.com/15566.html,转载请注明出处。

0
紧急通知,在加入会员前,请先看网站最新公告,在考虑是否购买会员,本站还是执行虚拟资源,一经购买,概不退还。(如果你是要学习股票视频教程,那么必须看网站发布公告)
没有账号? 注册  忘记密码?
'); })();