基本上我在做一些竞技编程,我想要检查(本地)程序在运行时使用了多少内存。我想用另一个程序来测量这个。有没有办法可以做到这一点?如果可以的话,能否提供代码?我感到相当困惑。
如果有平台无关的方法会更好。
/proc/{正在运行的程序的进程ID}/smaps
。这个变体可能适用于其他拥有/proc/
文件系统的系统。HANDLE
,可以使用以下方式获得。handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE, process_id);
PROCESS_MEMORY_COUNTERS couters;
GetProcessMemoryInfo( handle, &counters, sizeof(counters));
CloseHandle(handle);
now do something with counters ....
new
、delete
运算符并计算您的分配数量。 - Waqarmalloc
和free
。我曾经在一个项目中工作过,他们重载了所有相关的new
和delete
操作符,并为malloc
和free
定义了宏。这基本上是有效的,但由于内存碎片化而导致的内存问题除外。 - Michael Veksler