我正在开发一个使用并行计算的应用程序。要知道我可以并行运行多少任务,我需要能够预测每个任务将占用的内存量。
我知道(大概)每个任务将使用多少每种类型的数据。
如何预测内存使用情况?使用流程度量执行运营研究?求多个sizeof()?
我的工作平台是Windows7,x64版。每个任务都在单独的进程中运行。
发布于 2011-11-27 18:18:12
因此,您实际上要做的是找出每个任务将占用的最大内存量。
有一个.net函数就可以做到这一点。它被称为Process::PeakWorkingSet64
Process p = Process.GetCurrentProcess();
int maxSizeInKb = (int) p.PeakWorkingSet64() / (float) 1024;
Console.WriteLine(maxSizeInKb + "KB");在您的进程退出之前添加此代码,并将获得您想要的信息,单位为in。
发布于 2011-11-27 18:14:15
在其运行的高峰期,为其中一个任务调用GetProcessMemoryInfo并获取特定任务(进程)的内存使用情况。您可能还想通过在不同时间对不同任务调用此函数来获取此数据的采样,以获得更精确的平均值。
https://stackoverflow.com/questions/8284632
复制相似问题