c++ - 有没有办法测量 c++ 程序的运行时内存使用情况?
问题描述
基本上我正在做一些有竞争力的编程工作,我想(在本地)检查我的程序在运行时使用了多少内存。我想用另一个程序来衡量这个。有没有办法做到这一点?如果是这样,我可以得到代码吗?这里很混乱。
如果有独立于平台的方式会更好。
解决方案
不幸的是,没有平台无关的方式。如果您想测量程序外部的内存使用情况,而不更改其代码,那么您需要使用特定于操作系统的工具。
在 Linux 上:在 Linux 中,如何判断进程正在使用多少内存?. 它基本上告诉你解析/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 ....
推荐阅读
- machine-learning - 如何选择特征进行聚类?
- dart - 每次按键时在 dart TextField 中执行方法
- ios - 如何使用 Swift 创建底部表单样式模型视图控制器?
- python - Python,websocket在某些机器上自动关闭
- machine-learning - 神经网络的小词汇量可以吗?
- python - Looking for an elegant way for looping simultaneously over two list with different lengths
- react-native - 如何在本机反应(博览会)中保持我的钥匙安全?
- linux - 使用 sed 将 Curl 信息导出到文件
- ios - 在快速计算时隙时获得零值
- php - 无法在服务器上运行基于肥皂的 API,但在本地电脑上运行良好