DotNET应用程序的内存使用情况

时间:2009-09-03 23:38:26

标签: memory unmanaged managed

我的应用程序(DotNET)作为插件在C ++独立应用程序中运行,该应用程序公开了C ++ / CLI SDK。

我的用户很容易生成大量数据,如果我的插件+基本应用程序的内存消耗达到-say-法定最大值的90%,我想提供一个中止选项。

如何衡量总内存消耗(理想情况下是托管非托管代码)以及如何知道当前应用程序允许的内存窗口数量?

3 个答案:

答案 0 :(得分:4)

Process类提供了大部分信息。我想你所追求的是Process.PrivateMemorySize64

你应该可以这样做:

var memoryUsage = Process.GetCurrentProcess().PrivateMemorySize64;

答案 1 :(得分:1)

我建议使用分析工具:dotTrace效果很好。

答案 2 :(得分:1)

GetProcessMemoryInfo并查看PROCESS_MEMORY_COUNTERS_EX中的PrivateUsage

<强>更新

显然我误解了这个问题,虽然你想要应用程序的CLI SDK端的值。在管理方面,您已经得到了正确答案。