百科问答小站 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+汇编写一个简易的操作系统,会让你掌握更多的技能,远比你了解这些东西要重要。




  

相关话题

  电脑需不需要有杀毒软件呢? 
  很厉害的程序员都读过CSAPP,SICP,操作系统,算法导论,编译原理这些书吗? 
  搜索引擎给出完全相同的两个结果,但一个是广告链接,另一个才是正常结果,你会选择哪个呢? 
  装修时埋网线或光纤,还有网络的几个问题? 
  你见过哪些神补刀? 
  为什么根据 IP 地址查询物理所在地,而不是 mac 地址? 
  linux更新后无法启动时你的心情怎样、第一步怎么做? 
  《计算机网络自顶向下方法》第一章中频段指的是电磁波频率范围吗,模拟信号在电话线中是电磁波的形式传播吗? 
  如何看待微软不再给OEM提供32位的Windows? 
  现在学计算机,以后想跨专业去学习和从事芯片的工作,大神们有什么意见和建议呢? 

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





© 2025-02-07 - tinynew.org. All Rights Reserved.
© 2025-02-07 - tinynew.org. 保留所有权利