我創建了兩個(儘可能基本的).XAML頁面。Windows手機內存泄漏90MB - 只有兩個靜態頁面
StaticPage.xaml
- 顯示內存使用
- 鏈接MemoryTest.xaml
MemoryTest.xaml
- 不執行任何操作,但會顯示10個左右文本塊每個瓦特iht Text =「這是一些文字」。
問題
如果你要做的就是來回導航使用超鏈接的頁面之間,然後將硬件後退按鈕,內存使用情況看起來不錯。 但是,如果你一直這樣做...兩者都是當前的內存使用情況,並且總內存使用率攀升!!!!!一路超過90MB的限制。
這裏查看我的截圖:
圖片的標題說明:
導航速度更快或更慢的不有所作爲。 沒有資源可以發佈,沒有任何事情可以在代碼後面進行,因爲沒有任何東西存在...... 現在,如果您添加更多控件(如同普通應用程序一樣,此過程將更快)。 添加更多靜態文本塊也會提高達到90MB限制的速度。
這是不好的,因爲我有一個使用內存的photoalbum頁面沒有得到釋放,5分鐘或體面使用後,它超過90MB ..我需要嘗試解決這個問題,所以它不會通過市場測試。
下面是代碼後面的每一頁
StaticPage.xaml
public partial class staticPage : PhoneApplicationPage
{
public staticPage()
{
InitializeComponent();
}
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/TestDir/MemTest.xaml", UriKind.Relative));
txtMem.Text = String.Format("{0} MB Peak\n{1} MB Current", (DeviceStatus.ApplicationPeakMemoryUsage/1048576).ToString(), (DeviceStatus.ApplicationCurrentMemoryUsage/1048576).ToString());
}
}
MemoryTest.xaml
public partial class MemTest : PhoneApplicationPage
{
public MemTest()
{
InitializeComponent();
}
}
剛剛被重新標記爲更相關。 – anothershrubery 2012-03-20 15:39:19
'GC.Collect'不能幫你嗎?此外,您可以嘗試使用'Profiler'來查看在使用一段時間後哪些資源仍在內存中。也許這有助於你:http://windowsteamblog.com/windows_phone/b/wpdev/archive/2012/02/01/memory-profiling-for-application-performance.aspx – Ku6opr 2012-03-20 15:57:14
YUP ...顯式調用GC.Collect()在OnNavigatedTo覆蓋工作就像一個魅力。現在我想知道...應該這是更多的汽車? – user1141547 2012-03-20 17:09:23