c语言计算程序运行时间和占用内存的函数
时间: 2024-10-17 11:03:24 浏览: 45
C语言计算代码执行所耗CPU时钟周期
5星 · 资源好评率100%
在C语言中,直接测量程序运行时间并不内置于标准库中,你可以使用`clock()`、`time()` 函数配合 `CLOCKS_PER_SEC` 或 `CLOCKS_PER_SEC` 这些系统调用来获取程序运行的时间。例如:
```c
#include <stdio.h>
#include <time.h>
double get_time() {
struct timespec start, end;
clock_gettime(CLOCK_MONOTONIC, &start);
// 执行你的代码
clock_gettime(CLOCK_MONOTONIC, &end);
double elapsed = (end.tv_sec - start.tv_sec) + (double)(end.tv_nsec - start.tv_nsec) / 1e9;
return elapsed;
}
```
至于测量内存占用,C语言本身也没有提供这样的功能。你需要使用一些第三方工具,如Linux下的`valgrind`,Windows下的一些性能分析工具,或者第三方库如`cmemUSAGE`等。如果你在编写C++代码,可以使用`std::unordered_map`或`std::tr1::unordered_map`(C++11及更早版本)的`malloc_count`属性,但是请注意这并不能精确地反映每个分配的内存大小。
阅读全文