我如何知道已使用的内存量。即 RAM 使用情况?
int main()
{
int i=0;
for(i=0;i<100;i++)
{
printf("%d\n",i);
}
return 0;
}
我想编写一段代码来计算该程序使用的内存量。可能就像-
int main()
{
int i=0;
for(i=0;i<100;i++)
{
printf("%d\n",i);
}
printf("Amount of memory consumed=%f",SOME_FUNCTION());
return 0;
}
最佳答案
getrusage
系统调用将返回当前进程的一些信息,其中包括“驻留集大小”:
struct rusage usage;
if (!getrusage(RUSAGE_SELF, &usage)) {
printf("Maximum resident set size (KB): %ld\n", usage.ru_maxrss);
} else {
perror("getrusage");
}
此大小等于物理连接到进程的内存量,而不是虚拟地址空间的整个大小,其中部分空间可能被调出或从未加载。
关于c 程序计算系统内存使用量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448566/