16 个解决方案
#1
这个用C理论上就不可能吧,首先受编译器影响极大,一样的代码,不同的编译器甚至同一个编译器不同的选项都会生成不同的代码,那cache的使用都会不同
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
#2
这东西无法在语言层面测试。
如果平台支持,可以利用 sdk 或开发包里面提供的 api 来直接操作设备取出统计数据。
另外,如果有软仿真工具,则在工具中有提供相关的方法。
如果平台支持,可以利用 sdk 或开发包里面提供的 api 来直接操作设备取出统计数据。
另外,如果有软仿真工具,则在工具中有提供相关的方法。
#3
顶下。。
#4
取过cpu信息,但是没取过这些信息,有什么需求?
#5
++
帮顶!
#6
介绍你看一本书《代码优化:有效使用内存》,这本书正好教你如何用C/C++做这类工作。
#7
对一段程序测一下也是可以的,应该会利用一些寄存器进行实时的控制和锁定,主要是用来分析一些cache的指标来指导cache的优化。
#8
非常感谢
#9
测试大小都是来测cpu类型的
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
#10
这个我是知道的,我想知道的是怎么测试cache的大小,原理是什么。以及如何对一段程序测出在cache中的动态运行情况,如失效,命中率等方面,来指导代码优化用和cache错误检查。
#11
应该由操作系统提供相关接口,或者自己在底层实现对硬件的访问信息
#12
应该会涉及到一定的汇编取指令信息,有没有谁能给出一些比较好的方法或者思路
#13
学习了 、、、
#14
继续求教
#15
cache 对程序好像是透明的,我的观点是取不了。
#16
可以参考一下 cachegrind 这个performance工具。
#1
这个用C理论上就不可能吧,首先受编译器影响极大,一样的代码,不同的编译器甚至同一个编译器不同的选项都会生成不同的代码,那cache的使用都会不同
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
而且“命中率或者缺失率”这个可不是定值啊,完全取决于你的代码,怎么测?最多测出来你这个代码的cache“命中率或者缺失率”,对其他程序没什么参考意义
#2
这东西无法在语言层面测试。
如果平台支持,可以利用 sdk 或开发包里面提供的 api 来直接操作设备取出统计数据。
另外,如果有软仿真工具,则在工具中有提供相关的方法。
如果平台支持,可以利用 sdk 或开发包里面提供的 api 来直接操作设备取出统计数据。
另外,如果有软仿真工具,则在工具中有提供相关的方法。
#3
顶下。。
#4
取过cpu信息,但是没取过这些信息,有什么需求?
#5
++
帮顶!
#6
介绍你看一本书《代码优化:有效使用内存》,这本书正好教你如何用C/C++做这类工作。
#7
对一段程序测一下也是可以的,应该会利用一些寄存器进行实时的控制和锁定,主要是用来分析一些cache的指标来指导cache的优化。
#8
非常感谢
#9
测试大小都是来测cpu类型的
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
然后查表……
命中率那个没法测,也只和你的算法有关,不同算法不一样
#10
这个我是知道的,我想知道的是怎么测试cache的大小,原理是什么。以及如何对一段程序测出在cache中的动态运行情况,如失效,命中率等方面,来指导代码优化用和cache错误检查。
#11
应该由操作系统提供相关接口,或者自己在底层实现对硬件的访问信息
#12
应该会涉及到一定的汇编取指令信息,有没有谁能给出一些比较好的方法或者思路
#13
学习了 、、、
#14
继续求教
#15
cache 对程序好像是透明的,我的观点是取不了。
#16
可以参考一下 cachegrind 这个performance工具。