测量CPU /存储器消耗

问题描述:

我在C++中使用这种用于测量的时间执行:测量CPU /存储器消耗

struct timeval t1, t2; 
gettimeofday(&t1, NULL); 
gettimeofday(&t2, NULL); 
int milliSeconds = (t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec)/1000; 

但我想也是衡量将CPU /存储器消耗。我怎样才能做到这一点?

+2

检查'getrusage()',知道您的具体过程花费了多少时间而不是实时总量要好得多。 –

+0

您需要指定目标操作系统是什么,您想了解哪种CPU使用情况?周期数?花在runnable上的时间?时钟时间?运行时间?用于百分比? –

+0

不确定这是你想要的,但如果你正在寻找一个微型基准库,请尝试通过谷歌这一个:https://github.com/google/benchmark。它测量每次迭代的CPU时间以及其他事情。 – ehudt

要计算使用的CPU的百分比,您可以使用Alexsis Wilke建议来使用getrusage(),并除以您在问题中计算出的总运行时间。 这将为您提供单个CPU使用的CPU的平均百分比。如果您使用的处理器数量很多,则还可以按处理器数量进行分配。

+0

感谢您的回答! – PRVS