我的应用程序 (DotNET) 在 C++ 独立应用程序中作为插件运行,该应用程序公开了 C++/CLI SDK。
我的用户很容易生成大量数据,如果我的插件 + 基础应用程序的内存消耗达到法定最大值的 90%,我想提供一个中止选项。
我如何测量总内存消耗(对于托管和非托管代码来说都是理想的),我如何知道当前应用程序允许多少内存窗口?
Process 类提供了大部分此类信息。我认为您所追求的是Process.PrivateMemorySize64。
你应该能够做到:
var memoryUsage = Process.GetCurrentProcess().PrivateMemorySize64;
我推荐一个分析工具:dotTrace非常好用。
GetProcessMemoryInfo
并检查PrivateUsage
.PROCESS_MEMORY_COUNTERS_EX
更新
显然我误解了这个问题,尽管您希望从应用程序的 CLI SDK 端获得价值。在托管方面,您已经得到了正确的答案。