我试图弄清楚程序配置文件如何工作。我正在使用Valgrind。我的第一个问题是:
函数的成本对Valgrind意味着什么?是时间吗?
根据我的阅读,Valgrind似乎在虚拟机上运行该程序,该虚拟机应镜像“通用计算机”。然后,它计算本机中发生的事件。但是,如何从这些数据计算功能成本?可以在标准台式PC上测量小于1毫秒的时间吗?
编辑:
请问callgrind输出中的一维数字“cost” 是什么意思?
最佳答案
假设您使用的是Cachegrind和Callgrind工具,它们并没有衡量“成本”;它们测量从在模拟处理器上运行程序所收集的特定统计信息,包括:
有关详细信息,请参见documentation。
其他探查器会测量每个功能的耗用时间,或使用采样来确定程序花费最多时间的功能。
是的,大多数现代计算机都具有不到一微秒的精度计时器,而现代英特尔处理器可让您计算CPU周期。但是Valgrind不会测量经过的时间,因为这在它的模拟机器上是没有意义的。
关于c++ - Valgrind如何估算功能成本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14506537/