如何在c ++

时间:2015-08-14 10:03:08

标签: c++ memory memory-leaks

我有一个程序可以在多个文件上运行特定任务,因此它有效地具有以下结构:

std::vector<string> fileList=getFileList();
for(int i=0;i<fileList.size();i++)
{
       processFile(fileList[i]);
}

我担心processFile函数中存在少量内存泄漏(这是一个相对复杂的函数,它调用其他几个函数并使用多个类)。

检查此函数中是否确实存在内存泄漏,比如测量应用程序在调用processFile之前和之后使用的内存量,并在非常大的数据集上运行,并查看内存使用情况如何变化在处理过程中

有什么方法可以衡量我的应用程序在该应用程序中使用的内存量?

以同样的方式,我可以找到应用程序的每个部分在运行时使用的内存量吗?

1 个答案:

答案 0 :(得分:0)

如果你想在运行时通过上面的代码测量多少内存,你必须计算:

  

(fileList中的元素数量)* sizeof(字符串)+ fileList中文件的大小

但如果您想在运行时在Windows中获取所有进程内存使用情况,可以在程序中调用 GetProcessMemoryInfo API并传递进程句柄( GetCurrentProcess() API ),使用此API的示例:

  

https://msdn.microsoft.com/en-us/library/ms682050.aspx

通过以下链接查看对您问题的完整回复:

  

How to determine CPU and memory consumption from inside a process?