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




  

相关话题

  既然 BGP 的前提是网络层是通的,那还需要 BGP 做什么用呢? 
  同一微软系统在不同设备上运行,流畅度大不相同与同一设备,不同年份同一系统,流畅度大不相同,这是为何? 
  世界上有没有大于 100MB 的图片? 
  40的程序员,技术达不到分布式能力,编码与思维也明显不如年轻人,这个时候在创业型企业怎么凸显实力? 
  工程上存在那么多不确定情况,为什么计算机不能利用它们产生真随机数,而只能根据逻辑产生伪随机数? 
  一个模块(比如文件系统)在内核中实现(宏内核),跟它在内核外实现(微内核),主要区别是什么? 
  怀疑被女朋友公安系统内部的朋友监控,怎么办? 
  如何看待王垠对于内存管理的理解? 
  现有的技术能否在同一个局域网内让一台电脑上正在进行的工作转移到另一台设备? 
  Build 2015上微软宣布Windows 10支持Objective-C与Java编写的应用,这对C#与Windows自身有什么长远影响? 

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





© 2025-03-11 - tinynew.org. All Rights Reserved.
© 2025-03-11 - tinynew.org. 保留所有权利