社区
C语言
帖子详情
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息?
john0122
2011-09-03 12:47:10
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息啊?有没有一些比较好的开源软件之类的或者哪位大侠对此比较懂,能够说明一下测试的原理或者方法,或者对其中的某一项给出也可以,谢谢了。
...全文
1639
16
打赏
收藏
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息?
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息啊?有没有一些比较好的开源软件之类的或者哪位大侠对此比较懂,能够说明一下测试的原理或者方法,或者对其中的某一项给出也可以,谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gbtux2008
2012-01-04
打赏
举报
回复
可以参考一下 cachegrind 这个performance工具。
proorck6
2011-09-04
打赏
举报
回复
cache 对程序好像是透明的,我的观点是取不了。
john0122
2011-09-04
打赏
举报
回复
继续求教
jackyjkchen
2011-09-03
打赏
举报
回复
这个用C理论上就不可能吧,首先受编译器影响极大,一样的代码,不同的编译器甚至同一个编译器不同的选项都会生成不同的代码,那cache的使用都会不同
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
john0122
2011-09-03
打赏
举报
回复
[Quote=引用 6 楼 supermegaboy 的回复:]
引用楼主 john0122 的回复:
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息啊?有没有一些比较好的开源软件之类的或者哪位大侠对此比较懂,能够说明一下测试的原理或者方法,或者对其中的某一项给出也可以,谢谢了。
介绍你看一本书《代码优化:有效使用内存》,这本书正好教你如何用C/C++做这类工作。
[/Quote]
非常感谢
john0122
2011-09-03
打赏
举报
回复
[Quote=引用 1 楼 jackyjkchen 的回复:]
这个用C理论上就不可能吧,首先受编译器影响极大,一样的代码,不同的编译器甚至同一个编译器不同的选项都会生成不同的代码,那cache的使用都会不同
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
[/Quote]
对一段程序测一下也是可以的,应该会利用一些寄存器进行实时的控制和锁定,主要是用来分析一些cache的指标来指导cache的优化。
飞天御剑流
2011-09-03
打赏
举报
回复
[Quote=引用楼主 john0122 的回复:]
如何用C语言测试CPU的Cache大小、速率、命中率或者缺失率等信息啊?有没有一些比较好的开源软件之类的或者哪位大侠对此比较懂,能够说明一下测试的原理或者方法,或者对其中的某一项给出也可以,谢谢了。
[/Quote]
介绍你看一本书《代码优化:有效使用内存》,这本书正好教你如何用C/C++做这类工作。
至善者善之敌
2011-09-03
打赏
举报
回复
[Quote=引用 1 楼 jackyjkchen 的回复:]
这个用C理论上就不可能吧,首先受编译器影响极大,一样的代码,不同的编译器甚至同一个编译器不同的选项都会生成不同的代码,那cache的使用都会不同
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
[/Quote]
++
帮顶!
jixingzhong
2011-09-03
打赏
举报
回复
取过cpu信息,但是没取过这些信息,有什么需求?
欣客
2011-09-03
打赏
举报
回复
学习了 、、、
john0122
2011-09-03
打赏
举报
回复
应该会涉及到一定的汇编取指令信息,有没有谁能给出一些比较好的方法或者思路
limang89
2011-09-03
打赏
举报
回复
顶下。。
kingcard
2011-09-03
打赏
举报
回复
应该由操作系统提供相关接口,或者自己在底层实现对硬件的访问信息
john0122
2011-09-03
打赏
举报
回复
[Quote=引用 9 楼 xunxun1982 的回复:]
测试大小都是来测cpu类型的
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
[/Quote]
这个我是知道的,我想知道的是怎么测试cache的大小,原理是什么。以及如何对一段程序测出在cache中的动态运行情况,如失效,命中率等方面,来指导代码优化用和cache错误检查。
Leaveye
2011-09-03
打赏
举报
回复
这东西无法在语言层面测试。
如果平台支持,可以利用 sdk 或开发包里面提供的 api 来直接操作设备取出统计数据。
另外,如果有软仿真工具,则在工具中有提供相关的方法。
xunxun
2011-09-03
打赏
举报
回复
测试大小都是来测cpu类型的
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
2016
15.有如下
C语言
程序段: for(int k = 0; k < 1000; k++) { a[k] = a[k]+32; } 若数组a以及变量k均为int型,int型数据占4B,数据
Cache
采用直接映射 方式,数据区
大小
是1KB,块
大小
是16B,该程序段执行前
Cache
为空,则该程序段执行过程中,访问数组a的
Cache
的
缺失
率
是:C A. 1.25% B. 2.5%...
Cache
写机制:Write-through与Write-back
当
CPU
采用高速缓存时,它的写内存操作有两种模式: 一种称为“穿透”(Write-Through)模式,在这种模式中高速缓存对于写操作就好像不存在一样,每次写时都直接写到内存中,所以实际上只是对读操作使用高速缓存,因而效
率
相对较低。 另一种称为“回写”(Write-Back)模式,写的时候先写入高速缓存,然后由高速缓存的硬件在周转使用缓冲线时自动写入内存,或者由软件主动地“冲刷”有关的...
《计算机组成原理》
一、计算机系统概述 ·计算机硬件系统=运算器+存储器+控制器+输入、输出设备 ·(集成到一个芯片上)运算器+控制器=
CPU
(中央处理器) ·计算机软件分为:系统软件(OS/DBMS)、应用软件(应用程序) ·语言(从低到高):机器语言,汇编语言,高级语言 ·翻译程序:高级语言转为机器语言,分为:解释/编译 解释:逐条翻译,立即执行,不会生成目标程序 编译:一次性翻译为目标程序(会生成目标程序)后执行,时间长,运行速度比解释快 ·汇编:把汇编语言源程序翻译为机器语言程序的翻译程序 ·从源程序到可执行文件: 预
Python 接口并发
测试
详解
性能
测试
是通过自动化
测试
工具模拟多种正常、峰值及异常负载条件对系统的各项性能指标进行的
测试
。负载
测试
和压力
测试
都属于性能
测试
,两者可以结合进行。通过负载
测试
,确定在各种工作负载下系统的性能,目标是
测试
当负载逐渐增加时,系统各项性能指标的变化情况。压力
测试
是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的
测试
。性能
测试
的重点是
测试
在并发条件下服务或系统的瓶颈所在,从而优化相关功能,可能涉及软件及硬件的多方面改进。由此可见,性能
测试
对整个产品非常重要,甚至可以决定一个产品是否能长久发
计算机组成原理课后习题
第一章 1.名词解释 兼容性:兼容性是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度。 指令集体系结构:指令集体系结构是机器语言程序所运行的计算机硬件和软件之间的一个“桥梁”,是软件和硬件之间接口的一个完整定义。 透明性:在计算机技术中,一个存在的事物或概念从某个角度看似乎不存在,也即,对实际存在的事务或概念感觉不到,则称为透明。
CPU
执行时间:
CPU
执行时间指
CPU
用于程...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章