如何在 UWP 应用程序处于 运行 时查看(近似)内存使用情况

How to see (approximate) memory usage in an UWP App while it's running

根据 Diagnosing memory issues with the new Memory Usage Tool in Visual Studio 上的这篇文章:

1. Memory caps on Phone devices: In particular for Phone, there are specific memory limits enforced on an application based on the size of the memory in the device. Allocating more than the specified limit will cause an OutOfMemoryException and will result in app termination.

一切都很好,在 Visual Studio 中,您可以使用诊断工具查看开发过程中的内存使用情况。

(Windows 10) phone 上的 UWP 应用程序 运行 是否有任何方法可以大致了解它消耗了多少内存? - IE。在应用程序中,而不是利用 visual studio.

更新 - 我是如何选择 'Answer'

关键是,这暴露了我对内存的普遍缺乏理解,特别是现代 .net 应用程序如何使用它。这两个答案对我都有帮助,尽管我已经对这两个答案进行了简短的试验,但很难说其中一个是正确的答案,因为我发现它们都很有用。

虽然我很欣赏链接到相应官方文档的两个答案,但这些信息非常薄(没有不尊重 Romasz 和 Alexej)。

最后我将答案授予 Romasz,因为 API 似乎更深一些。

对于 UWP 应用,有 ProcessDiagnosticInfo class 个可用。

ProcessMemoryUsageReport mu = ProcessDiagnosticInfo.GetForCurrentProcess().MemoryUsage.GetReport();

我想你也可以利用 MemoryManager class. There you can subscribe to events informing about increase/decrease of memory, set limits, as well as check memory usage of app or read reports for app or for process:

var appMemory = MemoryManager.AppMemoryUsage;
var appMemoryReport = MemoryManager.GetAppMemoryReport();
var processMemoryReport = MemoryManager.GetProcessMemoryReport();