在調試Windows Phone程式的時候,我們通常需要知道當前程式佔用的記憶體是多少,有沒有發生記憶體泄露。
在之前的Windows Phone 7 Tips (5) 中有提到EnableFrameRateCounter 是監視程式運行時的畫面播放速率,具體的用法如下
// Show graphics profiling information while debugging.if (System.Diagnostics.Debugger.IsAttached){ // Display the current frame rate counters. Application.Current.Host.Settings.EnableFrameRateCounter = true;
}
以下是右側工具條的具體解釋
這裡並沒有我們想要看的記憶體的使用方式,如何去做呢。在Windows Phone 中有這麼一個類 Microsoft.Phone.Info.DeviceExtendedProperties 提供記憶體的使用方式,具體的屬性指如下:
屬性值 |
傳回值 |
描述 |
DeviceTotalMemory |
long integer |
裝置總記憶體(單位位元組) |
ApplicationCurrentMemoryUsage |
long integer |
當前應用程式記憶體使用量量(單位位元組) |
ApplicationPeakMemoryUsage |
long integer |
當前應用程式最高使用量(單位位元組) |
可能你需要寫如下的代碼來查看這些資料
當然還有更簡單的方法,就是引入一個dll(Dll下載),然後寫幾段代碼就完事了。
dnp.Counter.EnableMemoryCounter = true;
預設是2秒重新整理一次,當然你可以自己設定重新整理間隔
dnp.Counter.SetTimerInterval(1);
參考
http://blogs.msdn.com/b/mikeormond/archive/2010/12/16/monitoring-memory-usage-on-windows-phone-7.aspx
http://dotnetprofessional.com/blog/post/2010/09/27/Debug-Memory-Counter-for-Windows-Phone-7.aspx