我想知道如何知道我的程序实时使用了多少内存。我在win32中找到了PrintMemoryInfo()函数,我试图实现它。
CODE
#include <windows.h>
#include <stdio.h>
#include <psapi.h>
size_t PrintMemoryInfo()
{
PROCESS_MEMORY_COUNTERS info;
GetProcessMemoryInfo( GetCurrentProcess( ), &info, sizeof(info) );
return (size_t)info.WorkingSetSize;
}
inline void printIt(){
double memory = (double)PrintMemoryInfo() * 0.001;
printf("%.2f kb\n",memory);
}
int main( void )
{
printIt();
char *i =(char*)malloc(100000);
printIt();
free(i);
printIt();
return 0;
PROCESS_MEMORY_COUNTERS
包含流程的内存统计信息,GetProcessMemoryInfo
填写数据。我需要知道程序使用的实际内存大小,所以我使用WorkingSetSize来获取它。
Microsoft定义:
WorkingSetSize 当前工作集大小,以字节为单位。
我从字节传递到千字节,并且我执行程序我得到了这个:
输出
这个程序对我来说毫无意义:
也许我没有得到这些功能正在做的事情,所以有人可以解释一下发生了什么事吗?
谢谢!
答案 0 :(得分:0)
它是:
的总和编程alloc
更多内存,用于构造代码。