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




  

相关话题

  如何让电脑有种很高端的感觉? 
  为什么不同的死循环占用资源不同? 
  如何看待第三方百度云Pandownload作者被捕? 
  如果世界上所有的assembler, interpreter, compiler在一瞬间全消失,世界会变成怎样? 
  计算机学术界是不是喜欢发明一些没什么用的概念? 
  你工作中最推荐的 C/C++ 程序库有哪些,为什么? 
  给我女神发消息,隔壁的二狗在同一 Wi-Fi 下,能收到我的帧吗? 
  对于多核CPU java中Thread.currentThread() 指的是哪个核上的线程? 
  程序员的价值会随工作经验增多而增长么? 
  为什么基于汉字的编程语言没有流行? 

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





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