典型 PC 系统各种操作指令的大概时间
2012-08-30 10:18
253 查看
典型 PC 系统各种操作指令的大概时间
一般来说。CPU需要0个周期来访问其寄存器,1-30个周期来访问高速缓存,50-200个周期来访问主存。
对于Intel Core i7来说。这个值可以很具体。Intel Core i7的主频约在2-3GHz。可以计算出。
也就是说,访问内存的时间是ns级别的。
再来看看磁盘。
磁盘的访问时间=寻道时间+旋转延迟+数据传输时间。对于普通的7200转STAT磁盘。这个值是:9ms+4ms+0.02ms=13.02ms。
也就是说,如果从磁盘随机访问一个字节,需要13.02ms,比从内存获取的时间24-93ns,至少要多14万倍。相差5个数据级,何其巨大的差距。
顺序读写磁盘会快一些。 假设一个盘片有1000个扇区,每个扇区512字节,7200转。顺序读可以忽略掉寻道的时间。所以吞吐量是 扇区数×扇区大小×转速=1000*512/(60/7200)=58MB/s。这个数据似乎不咋样。如果使用多盘系统。STAT II的接口,吞吐量可以达到300MB/s。追求极限性能可以mount裸盘直接操作多盘。
![](http://news.mydrivers.com/img/20120221/11432053.jpg)
总结。
这些数据都不一定是所用机器的真实数据,但根据比例关系,可以了解到各个流程中的大概耗时。对于写的程序,也有一些参考依据。
不过若是实际项目,还是需要了解所用机器的真实性能。
execute typical instruction 执行基本指令 | 1/1,000,000,000 sec = 1 nanosec |
fetch from L1 cache memory 从一级缓存中读取数据 | 0. 5 nanosec |
branch misprediction 分支误预测 | 5 nanosec |
fetch from L2 cache memory 从二级缓存获取数据 | 7 nanosec |
Mutex lock/unlock 互斥加锁/解锁 | 25 nanosec |
fetch from main memory 从主内存获取数据 | 100 nanosec |
send 2K bytes over 1Gbps network 通过 1G bps 的网络发送 2K 字节 | 20,000 nanosec |
read 1MB sequentially from memory 从内存中顺序读取 1MB 数据 | 250,000 nanosec |
fetch from new disk location (seek) 从新的磁盘位置获取数据(随机读取) | 8,000,000 nanosec |
read 1MB sequentially from disk 从磁盘中顺序读取 1MB 数据 | 20,000,000 nanosec |
send packet US to Europe and back 从美国发送一个报文包到欧洲再返回 | 150 milliseconds = 150,000,000 nanosec |
对于Intel Core i7来说。这个值可以很具体。Intel Core i7的主频约在2-3GHz。可以计算出。
L1—指令缓存 | L1-数据缓存 | L2-缓存 | L3-缓存 | 内存 | |
访问周期 | 4 | 4 | 11 | 30-40 | 50-200 |
缓存大小 | 32KB | 32KB | 256KB | 8MB | 若干GB |
访问时间 | 2ns | 2ns | 5ns | 14-18ns | 24-93ns |
再来看看磁盘。
磁盘的访问时间=寻道时间+旋转延迟+数据传输时间。对于普通的7200转STAT磁盘。这个值是:9ms+4ms+0.02ms=13.02ms。
也就是说,如果从磁盘随机访问一个字节,需要13.02ms,比从内存获取的时间24-93ns,至少要多14万倍。相差5个数据级,何其巨大的差距。
顺序读写磁盘会快一些。 假设一个盘片有1000个扇区,每个扇区512字节,7200转。顺序读可以忽略掉寻道的时间。所以吞吐量是 扇区数×扇区大小×转速=1000*512/(60/7200)=58MB/s。这个数据似乎不咋样。如果使用多盘系统。STAT II的接口,吞吐量可以达到300MB/s。追求极限性能可以mount裸盘直接操作多盘。
![](http://news.mydrivers.com/img/20120221/11432053.jpg)
总结。
这些数据都不一定是所用机器的真实数据,但根据比例关系,可以了解到各个流程中的大概耗时。对于写的程序,也有一些参考依据。
不过若是实际项目,还是需要了解所用机器的真实性能。
相关文章推荐
- 典型 PC 系统各种操作指令的大概时间
- 典型PC机上各种操作的近似时间
- 深入理解计算机系统(3.5)---特殊的算术操作指令详解
- AIX文件系统基本之文件操作基本指令
- 【Python开发】【编程开发】各种系统的清屏操作命令
- Android入门之文件系统操作(二)文件操作相关指令
- 各种数据结构insert和search操作的平均时间复杂度比较
- Java-对系统时间进行的操作
- 微信跳一跳PC端辅助操作工具(基于ADB工具,适用于安卓系统)
- 用eclipse在HADOOP中的一些系统指令操作
- 系统调用之时间和日期操作(一)
- linux设置系统时间与各种阻塞
- 高精度时间同步系统 CDMA同步时钟 CDMA卫星时钟 PC时间同步 XP时间同步 北京时间同步
- Linux系统,基本操作指令整理
- Linux系统操作指令-centos
- 最近好想做外汇交易,苦于没有时间进行系统的研究和模拟盘面操作
- L-1-2 Linux基础命令详解之系统操作指令
- 在上一节中,我们讲到吞吐量,做为一个用户你可以对吞吐量毫不关心,但响应时间却是用户感受系统性能的主要体现。 从用户角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,当用户单
- java 时间操作 格式化 时区 系统时间
- Linux C语言编程-Linux系统环境--Linux上时间的相关操作---知识点总结