1

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

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

我如何测量总内存消耗(对于托管非托管代码来说都是理想的),我如何知道当前应用程序允许多少内存窗口?

4

3 回答 3

4

Process 类提供了大部分此类信息。我认为您所追求的是Process.PrivateMemorySize64

你应该能够做到:

var memoryUsage = Process.GetCurrentProcess().PrivateMemorySize64;
于 2009-09-03T23:55:11.603 回答
1

我推荐一个分析工具:dotTrace非常好用。

于 2009-09-03T23:43:59.620 回答
1

GetProcessMemoryInfo并检查PrivateUsage.PROCESS_MEMORY_COUNTERS_EX

更新

显然我误解了这个问题,尽管您希望从应用程序的 CLI SDK 端获得价值。在托管方面,您已经得到了正确的答案。

于 2009-09-04T00:12:57.343 回答