Как увидеть (приблизительное) использование памяти в приложении UWP во время его работы

Согласно этой статье на Диагностика проблем с памятью с помощью нового инструмента использования памяти в Visual Studio:

<сильный>1. Ограничение памяти на телефонных устройствах. В частности, для телефона к приложению применяются определенные ограничения памяти в зависимости от объема памяти устройства. Выделение больше указанного предела вызовет исключение OutOfMemoryException и приведет к завершению работы приложения.

Все хорошо, и в Visual Studio вы можете использовать инструмент диагностики, чтобы увидеть использование памяти во время разработки.

Есть ли способ, которым приложение UWP, работающее на телефоне (Windows 10), может получить приблизительное представление о том, сколько памяти оно потребляет? - т.е. внутри приложения, а не с помощью Visual Studio.

Обновление — Как я выбрал "Ответ"

Ключевым моментом является то, что это выявило огромное непонимание с моей стороны в отношении памяти в целом и, в частности, того, как ее потребляют современные приложения .net. Оба эти ответа помогли мне, и хотя я немного поэкспериментировал с обоими, трудно сказать, что какой-либо из них является правильным ответом, поскольку я нахожу их обоих полезными.

Кроме того, хотя я ценю оба ответа, ссылающиеся на соответствующую официальную документацию, эта информация довольно скудна (без неуважения к Ромашу и Алексею).

В конце концов, я присудил ответ Ромашу, поскольку API кажется немного глубже.


person Adrian K    schedule 16.06.2016    source источник
comment
Позвольте мне поиграть с этими двумя ответами — они оба выглядят многообещающе.   -  person Adrian K    schedule 16.06.2016


Ответы (2)


Я думаю, вы также можете использовать класс MemoryManager. . Там вы можете подписаться на события, информирующие об увеличении/уменьшении памяти, установить лимиты, а также как проверка использования памяти приложением или чтение отчетов для приложения или для процесса:

var appMemory = MemoryManager.AppMemoryUsage;
var appMemoryReport = MemoryManager.GetAppMemoryReport();
var processMemoryReport = MemoryManager.GetProcessMemoryReport();
person Romasz    schedule 16.06.2016