Windows应用商店应用程序大量RAM使用/内存泄漏

时间:2014-07-04 20:30:44

标签: c# memory-leaks windows-store-apps winrt-xaml ram

在本地运行 WACK Windows应用认证工具包)后,我在应用崩溃和挂起测试时失败了( >看起来由于“启动”不够快 - 没有“崩溃或挂起”)因此重构了一些启动代码以确保更快的启动时间。

我让应用程序通过本地测试确定。

但后来我注意到我以某种方式造成了一个奇怪的巨大的内存泄漏/问题我的c#xaml win 8.1 商店应用程序正在启动 ...即

void OnLaunched(LaunchActivatedEventArgs args);

在任务管理器中显示约200MB左右,在导致应用程序崩溃之前迅速加速至~1.5GB

我尝试使用VS2013性能和诊断工具试图弄清楚我是如何设法完全打破我的应用程序的。并且看到最初的~200MB被大约使用了~100

RuntimeTypeCache 

对象,然后是(0.7 - 1.5 GB及以上阶段的乐趣)a

List<object>

有各种类型。

我已尝试注释掉代码,直到App.xaml.cs文件除了

之外什么都不做

this.InitializeComponent();

没有快乐。

我检查了Package.appxmanifest并删除了所有非必要的内容。

删除了参考文献注释掉了代码,直到该应用基本上是一个空的棱镜MVVM win商店应用程序 - 无所事事......仍然以200MB开始!

到底是怎么回事?

1 个答案:

答案 0 :(得分:1)

解决这个问题,并认为答案可能帮助其他人解决问题

似乎我曾经尝试过帮助解决启动时间问题的性能概要分析工具 已挂钩到我的应用并且实际上引起了大量内存使用以及随后的崩溃。

我不确定是哪一个,但是我用了

  1. WACK - 不太可能
  2. Visual Studio 2013 (性能和诊断) - 可能
  3. 应用程序验证程序(在C:\ Windows \ System32中的appverif.exe - 按照WACK的建议 解决 崩溃和挂起)
  4. 的文档

    我的猜测是它是3,但这基本上是一个不知情的猜测。

    通过重命名.exe 解决了这个问题,即更改了

    <AssemblyName>MyNEWAppName</AssemblyName>
    

    在MyAppName.csproj

    此后应用程序恢复正常内存使用率(200MB的一小部分 - 我看到的1.7GB)