繁体   English   中英

有没有办法测量 c++ 程序的运行时 memory 使用情况?

[英]Is there a way to measure runtime memory usage of a c++ program?

基本上我正在做一些有竞争力的编程工作,我想(在本地)检查我的程序在运行时使用了多少 memory。 我想用另一个程序来衡量这个。 有没有办法做到这一点? 如果是这样,我可以得到代码吗? 这里很混乱。

如果有独立于平台的方式会更好。

不幸的是,没有平台无关的方式。 如果要在程序外部测量 memory 的使用情况,而不更改其代码,则需要使用 OS 特定工具。

在 Linux 上: 在 Linux 中,如何判断 memory 进程正在使用多少? . 它基本上告诉您解析/proc/{the process id of the running program}/smaps 这种变体可能适用于具有/proc/文件系统的其他系统。

在 Windows 上: 如何在 C++ 中使用 GetProcessMemoryInfo? . 它需要进程的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 ....
               

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM