百科问答小站 logo
百科问答小站 font logo



计算机执行一条指令要多长时间? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      
计算机执行一条指令要多长时间

看设备,看指令类型,对于intel来说,看这篇文档:

Intel® 64 and IA-32 Architectures Optimization Reference Manual
从内存中取一个word要多长时间(包括缓存命中和未命中的情况)

实际上没办法给出准确的时间,因为cache分几级,每一级的时间开销也不一样。甚至有极端情况比如word不对齐怎么办?

从磁盘上读取连续的数据要多长时间,定位到磁盘上的新位置又要多长时间?

看你用什么样的硬盘,看你读什么样的数据,机械硬盘和SSD速度肯定不一样,SSD没有寻道时间的概念但机械硬盘有。

你说的这些问题大部分都是性能相关的,跟硬件关联度很大,你说有书上给出了一个答案但我敢打包票说这个答案没有适用性,也没有实际意义,因为不同设备,不同测试样例的差异很大。

甚至,你在十年前的设备上跑和在十年后的设备上跑,结果差别也很大。

执行典型指令 1/1,000,000,000秒=1纳秒
从一级缓存中读取数据 0.5纳秒
分支预测错误 5纳秒
从二级缓存中读取数据 7纳秒
互斥锁定/解锁 25纳秒
从主存储器中读取数据 100纳秒

以上的内容应该就是十年前的数据,现在台式机的速度普遍比这个都要快的多,况且现在已经有三级缓存了,CPU的结构也复杂的多。

在 1Gbps 的网络中发送2KB 数据 20,000纳秒

这个数据显然不包括软件层面上的开销

从内存中读取1MB 数据 250,000纳秒
从新的磁盘位置读取数据(寻轨) 8,000,000纳秒
从磁盘中读取1MB 数据 20,000,000纳秒

新设备应该比这都快

在美国向欧洲发包并返回 150毫秒=150,000,000纳秒

基本上只是传输开销,没算协议栈开销。

题主是一个大三计算机的学生,对这些数字,看看就可以了,学好计算机组成原理,了解一下基本原理就够了,对于细节问题(比如CPU时钟周期)可以不要太在意,除非确定自己将来要做这个方向

手册上能一下查到的,不算技术(比如指令开销);手册上查完需要理解分析一下的,才是技术(比如段页式操作)。前者更像是研究茴字有几种写法一样。

你问的这些东西,有些可以查手册得到,不要太深挖,意义不是很大。打好编程基础,用C+汇编写一个简易的操作系统,会让你掌握更多的技能,远比你了解这些东西要重要。




  

相关话题

  Linux 是否比 Windows 省电? 
  如何评价@左耳朵耗子 的《关于阿里云经典网络的问题》? 
  华为鸿蒙OS是否影响到他人利益? 
  为什么我们努力提高网络带宽而不是去想办法压缩文件尤其是视频文件的大小呢? 
  为什么1KB等于1024B? 
  为什么匿名函数叫lambda 表达式? 
  该怎么看待网络语言? 
  为什么总有一些人推荐计算机学生把重点放在高数和线代? 
  是什么限制了存储卡的存储容量? 
  结果相同但段基址不同物理地址是同一地址吗? 

前一个讨论
上升星座具体怎么算?
下一个讨论
while(true);为什么有些语言会卡死 有些不会? ?





© 2024-05-28 - tinynew.org. All Rights Reserved.
© 2024-05-28 - tinynew.org. 保留所有权利