1

我遇到了 90mb 峰值内存限制问题。

例如:我创建 1 个全景应用程序(具有默认内容)并添加 3 个数据透视页面或 6 个纵向页面(页面 A 和页面 B.. 具有空白内容)。每次我在这些页面之间导航并返回时,内存使用量都会越来越高。最后,它通过了 90mb 的限制。

我使用按钮像这样导航:

private void btn1_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/PageA.xaml", UriKind.Relative));
}

在页面之间导航时我是否错过了一些重要的事情?在寻找解决方案时,我听说过垃圾收集器?我该如何使用它或者我需要如何使用它?

我找不到答案;我发现了这个类似的主题:http ://forums.create.msdn.com/forums/p/76007/466968.aspx但没有最终解决方案。

注意:我正在使用 Coding4fun 工具包来测量内存使用情况。


编辑:我创建了一个带有一些透视页面的示例全景应用程序(1 个带有内容)。

http://i54.tinypic.com/zfip.jpg

开始时,应用程序以 30mb 的大小打开。在我导航到同一个数据透视页面几次后,Peakmemory 开始一点一点地增加并停止在 47mb。这是正常的吗?也许,我不了解这个应用程序构建的动态。但是,如果它不断增加内存使用量并在使用后使应用程序崩溃,那是没有意义的。

4

1 回答 1

2

当您离开页面时,Somethign 会阻止您的页面被卸载。您可能在某处有资源泄漏,但如果没有看到您的代码,我们将不太可能提供更多帮助。

您不必担心垃圾收集。

于 2011-08-04T17:00:54.547 回答