我期待找到内存读取和写入CPU指令(包括读取指令来获取程序)之间的百分比,但我找不到任何这样的统计信息。可能的数量可能是1个指令读取,1个数据读取,1个数据写入。所以读取与写入相比可能是2/1。但它应该更高,我想(有点像3/1)。有关于此的任何信息?CPU读取与写入指令的统计(包括程序读取)
回答
轩尼诗和帕特森的计算机系统结构:一种定量方法提供五个SPEC CPU2000整数基准(间隙,GCC,gzip的,MCF,perlbmk)为MIPS统计:
% loads % stores
gap 26.5 10.3
gcc 25.1 13.2
gzip 20.1 5.1
mcf 30.3 4.3
perlbmk 28.7 16.2
正如你所看到的,体面的经验法则是大约四分之一的指令是负载,并且有一半的商店是负载。
即使在整数工作站基准测试中,您也可以看到存在显着差异。
你从这些统计中看不到的是ISA和编译器(以及所选优化级别)的影响。复杂指令的可用性往往会减少执行的指令数量。较高编译器优化下的更多寄存器将倾向于减少内存通信量。通过编译器优化,可以减少执行的指令数量(例如,循环展开可以消除分支指令)或增加(例如,强度可以将乘法乘以恒定值,转换为移位并添加,用条件移动代替预测不佳的分支可以增加指令计数)。编译器优化还可以减少加载和存储的数量(例如,使用来自链接时代码生成或内联的扩展活跃度信息来更好地分配寄存器)或增加加载或存储的数量(例如,使用加载和操作指令可能会减少注册压力允许软件流水线循环来完全隐藏操作延迟)。
谢谢,但我下载了这本书,看起来很快(700页),无法找到相关页面......你能帮忙吗? –
这个想法是知道我们是否做得慢一点(例如阅读速度的一半)写入指令(当程序读取和数据读取保持不变时)会对整体速度产生什么影响。正如你所说,1/4是读取1/8写入和5/8程序。在这种情况下,系统只会延迟1/8。 –
@GeorgeKourtis在第4版中,表格在附录B中(图B.27)。由于写入可以被缓冲,写入速度通常不是关键。 –
- 1. 线程读取与写入锁定
- 2. Cyclejs读取/写入websocket驱动程序?
- 3. C#程序读取,写入,查询XML
- 4. 读取/写入命令行程序中的c#
- 5. Twitter API:单独读取和读取/写入令牌
- 6. 系统调用读取和写入C
- 7. Redis读取/写入
- 8. 获取Java程序以读取括号,括号和大括号
- 9. 缓存读取系统存储器VS CPU读取系统存储器
- 10. 如何从Android手机中读取Java中的CPU“统计”?
- 11. 流读取(0)指令
- 12. 读取和写入数据包python-scapy
- 13. iOS设置包,读取和写入?
- 14. 写入/读取计数到txt文件
- 15. 读取read_csv2中的行名(读取程序包)
- 16. Python的读取/写入
- 17. 读取和写入的EditText
- 18. 对XML的读取/写入
- 19. 在读取指令时写入访问冲突
- 20. 请求调度程序读取包括之前的响应
- 21. Ruby:从系统进程写入的文件中读取
- 22. 使用asm指令读取MIPS CPU寄存器
- 23. 写入和读取(fwrite的 - FREAD)与指针
- 24. WPF读取/写入JSON与XML
- 25. 纹理内存与读取和写入
- 26. jQuery的.post不会读取PHP包括
- 27. 读取多核CPU的CPU使用率
- 28. 读取/写入多个启动的进程命令行
- 29. 读取和写入命令到一个单一的CMD过程
- 30. MS SQL - 顺序读取和写入
这实际上取决于您正在执行的任务类型。总结一个数组或做一个点积是所有的读取,复制数据更像是1:1等。 – Leeor
这是显而易见的,但是应该有关于桌面办公室使用的“平均”用户统计。 。至少可以想到的东西。 –