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




  

相关话题

  如何评价国内某知名量化私募基金为清华姚班应届生开出天价薪酬? 
  为什么很多计算机系的学生一点不会电脑的基本操作? 
  「贪心算法」的算法思路是什么,它存在什么缺陷? 
  如何将手中 20 多台旧电脑,组建一台超级计算机? 
  NAT 解决了IP地址枯竭问题后,再去推广IPV6的意义是什么? 
  室温超导、量子计算、可控核聚变、稳定超重元素这几项科技哪项会率先实用化? 
  为什英特尔(Intel)的标准深深的影响个人电脑市场? 
  学习计算几何是什么样的体验? 
  如何理解5G下载速度? 
  如何评价中航计算机所研制的天脉操作系统? 

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





© 2024-11-23 - tinynew.org. All Rights Reserved.
© 2024-11-23 - tinynew.org. 保留所有权利