每个程序员都应该知道的延迟值
2015-05-22 09:09
417 查看
L1 cache reference 0.5ns
一级缓存引用
Branch mispredict 5ns
分支错误预测
L2 cache reference 7ns
二级缓存引用
Mutex lock 100ns
互斥锁定
Main memory reference 100ns
主存引用
Compress 1K bytes with Zippy 10,000ns
用Zippy压缩1K字节
Send 2K bytes over 1 Gbps network 20,000ns
通过1Gbps网络发送2K字节
Read 1 MB sequentially from memory 250,000ns
从内存中读取1MB
Round trip within same datacenter 500,000ns
数据中心的往返路程
Disk seek 10,000,000ns
磁盘寻道
Read 1 MB sequentially from network 10,000,000ns
从网络连续读取1MB
Read 1 MB sequentially from disk 30,000,000ns
从磁盘连续读取1MB
Send packet CA->Netherlands->CA 150,000,000ns
在CA向荷兰发包再返回
补充一段关于Branch mispredict的介绍:来自Wiki
Branch misprediction occurs when a central
processing unit (CPU) mispredicts the next instruction to process in branch
prediction, which is aimed at speeding up execution.
During the execution of certain programs there are places where the program execution flow can continue in several ways. These are called branches,
or conditional jumps. The CPU also uses a pipeline which allows several
instructions to be processed at the same time. When the code for a conditional jump is read we do not yet know the next instruction to execute and insert into the execution pipeline. This is where branch
prediction comes in.
一级缓存引用
Branch mispredict 5ns
分支错误预测
L2 cache reference 7ns
二级缓存引用
Mutex lock 100ns
互斥锁定
Main memory reference 100ns
主存引用
Compress 1K bytes with Zippy 10,000ns
用Zippy压缩1K字节
Send 2K bytes over 1 Gbps network 20,000ns
通过1Gbps网络发送2K字节
Read 1 MB sequentially from memory 250,000ns
从内存中读取1MB
Round trip within same datacenter 500,000ns
数据中心的往返路程
Disk seek 10,000,000ns
磁盘寻道
Read 1 MB sequentially from network 10,000,000ns
从网络连续读取1MB
Read 1 MB sequentially from disk 30,000,000ns
从磁盘连续读取1MB
Send packet CA->Netherlands->CA 150,000,000ns
在CA向荷兰发包再返回
补充一段关于Branch mispredict的介绍:来自Wiki
Branch misprediction occurs when a central
processing unit (CPU) mispredicts the next instruction to process in branch
prediction, which is aimed at speeding up execution.
During the execution of certain programs there are places where the program execution flow can continue in several ways. These are called branches,
or conditional jumps. The CPU also uses a pipeline which allows several
instructions to be processed at the same time. When the code for a conditional jump is read we do not yet know the next instruction to execute and insert into the execution pipeline. This is where branch
prediction comes in.
相关文章推荐
- 每个程序员都应该知道的延迟值
- 每个程序员都应该知道的编程原则
- 每个程序员都应该知道的福利
- 每个程序员都应该知道的福利(转)
- 每个程序员都应该知道的8个Linux命令
- 每个程序员都应该知道的8个Linux命令
- 每个程序员都应该知道的基础数论
- 转载:每个程序员都应该知道的8个Linux命令
- 个人管理:每个程序员应该知道的12件事情
- 每个程序员都应该知道的福利
- 每个程序员应该知道12件事
- 每个程序员都应该知道的8个Linux命令
- 一周极客热文:每个程序员应该知道的12个API
- 计算机启动过程——每个程序员都应该知道
- 每个程序员都应该知道的8个Linux命令
- 每个程序员应该知道的12个API
- 每个程序员都应该知道的福利
- 每个程序员都应该知道的福利
- 每个程序员都应该知道的福利
- 每个程序员都应该知道的8个Linux命令