2016-06-16 24 views
5

Zgodnie z tym artykułem na Diagnosing memory issues with the new Memory Usage Tool in Visual Studio:Jak zobaczyć (przybliżona) zużycie pamięci w UWP aplikacji przy włączonym silniku

1. czapki pamięci na urządzeniach Phone W szczególności dla telefonów, istnieją specyficzne pamięci ograniczenia egzekwowane na podstawie aplikacji o rozmiarze pamięci urządzenia. Przydzielenie więcej niż określony limit spowoduje wyjątek OutOfMemoryException i spowoduje zakończenie aplikacji.

Wszystko dobrze i dobrze, aw Visual Studio można użyć narzędzia Diagnostyka, aby zobaczyć wykorzystanie pamięci podczas programowania.

Czy istnieje sposób, w jaki aplikacja UWP uruchomiona na telefonie (Windows 10) może uzyskać przybliżony pogląd na to, ile pamięci zużywa? - tj. w aplikacji, nie poprzez wykorzystanie wizualnego studio.

Update - Jak wybrałem „odpowiedzieć”

Kluczową rzeczą jest to, że ujawnił ogromny brak zrozumienia z mojej strony dotyczące pamięci w ogóle, a szczególnie jak nowoczesny .net aplikacje zużywają go. Obie te odpowiedzi były dla mnie pomocne i chociaż krótko eksperymentowałem z obydwoma, które trudno powiedzieć, jedno z nich jest właściwą odpowiedzią, ponieważ uważam je za użyteczne.

Również doceniam obie odpowiedzi, które odnoszą się do odpowiedniej oficjalnej dokumentacji, ale informacje te są dość cienkie (brak szacunku dla Romasz'a, & Alexej).

Ostatecznie przyznano mi odpowiedź na Romasz, ponieważ interfejs API wydaje się nieco głębszy.

+0

Pozwól mi mieć zabawę z tych dwóch odpowiedzi - oboje wyglądają naprawdę obiecująco. –

Odpowiedz

7

Myślę, że możesz również skorzystać z klasy MemoryManager. Nie można zapisać się do zdarzeń informujących o Zwiększenie/zmniejszenie pamięci, ustaw granicach, jak również as check memory usage of app lub czytać raporty for app lub for process:

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

W przypadku aplikacji UWP dostępna jest ProcessDiagnosticInfo class.

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