1

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

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

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

4

1 回答 1

0

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

对于一个重要的程序,内存使用实际上是不可能准确测量的。您的程序是否使用共享库?那么,您是否将共享库使用的内存计算为仅属于您的程序?你的程序 fork() 生成的子进程呢?您是单独计算它们还是与主要过程一起计算它们?所有这些问题都可以回答,但这意味着您测量的内容取决于您的具体选择。

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

对于 CPU 负载,您需要与操作系统交互。您无法从 C 获得该信息。

于 2013-04-23T13:43:39.900 回答