测量程序的C执行时间,内存使用和CPU负载

时间:2013-04-10 14:24:40

标签: c execution-time

对于c代码的特定程序,我想测量:

execution time (most likely complete program execution time)
memory usage
CPU load

我怎样才能在C中获得以上所有信息?

1 个答案:

答案 0 :(得分:0)

您可以编写一个简单的代码来测量特定代码块的执行时间,使用标准C库进行时间/日期操作(time.h):http://en.wikipedia.org/wiki/C_date_and_time_functions

对于非平凡的程序,实际上无法准确测量内存使用情况。您的程序是否使用共享库?那么,您是否将共享库使用的内存统计为专属于您的程序?你的程序fork()编辑的子进程怎么样?您是单独计算还是与主流程一起计算?所有这些问题都可以回答,但这意味着您衡量的内容取决于您的具体选择。

在C中,你可以做的是包裹malloc()和free()使用你的包装来跟踪你的内存分配。

对于CPU负载,您需要与OS连接。您无法从C获得该信息。

相关问题