我的应用程序(DotNET)作为插件在C ++独立应用程序中运行,该应用程序公开了C ++ / CLI SDK。
我的用户很容易生成大量数据,如果我的插件+基本应用程序的内存消耗达到-say-法定最大值的90%,我想提供一个中止选项。
如何衡量总内存消耗(理想情况下是托管和非托管代码)以及如何知道当前应用程序允许的内存窗口数量?
答案 0 :(得分:4)
Process类提供了大部分信息。我想你所追求的是Process.PrivateMemorySize64。
你应该可以这样做:
var memoryUsage = Process.GetCurrentProcess().PrivateMemorySize64;
答案 1 :(得分:1)
我建议使用分析工具:dotTrace效果很好。
答案 2 :(得分:1)
GetProcessMemoryInfo
并查看PROCESS_MEMORY_COUNTERS_EX
中的PrivateUsage
。
<强>更新强>
显然我误解了这个问题,虽然你想要应用程序的CLI SDK端的值。在管理方面,您已经得到了正确答案。