对于c代码的特定程序,我想测量:
execution time (most likely complete program execution time)
memory usage
CPU load
我怎样才能在C中获得以上所有信息?
答案 0 :(得分:0)
您可以编写一个简单的代码来测量特定代码块的执行时间,使用标准C库进行时间/日期操作(time.h):http://en.wikipedia.org/wiki/C_date_and_time_functions
对于非平凡的程序,实际上无法准确测量内存使用情况。您的程序是否使用共享库?那么,您是否将共享库使用的内存统计为专属于您的程序?你的程序fork()编辑的子进程怎么样?您是单独计算还是与主流程一起计算?所有这些问题都可以回答,但这意味着您衡量的内容取决于您的具体选择。
在C中,你可以做的是包裹malloc()和free()使用你的包装来跟踪你的内存分配。
对于CPU负载,您需要与OS连接。您无法从C获得该信息。