在本地运行 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开始!
到底是怎么回事?
答案 0 :(得分:1)
我解决这个问题,并认为答案可能帮助其他人解决问题
似乎我曾经尝试过帮助解决启动时间问题的性能概要分析工具 已挂钩到我的应用并且实际上引起了大量内存使用以及随后的崩溃。
我不确定是哪一个,但是我用了
我的猜测是它是3,但这基本上是一个不知情的猜测。
我通过重命名.exe 解决了这个问题,即更改了
<AssemblyName>MyNEWAppName</AssemblyName>
在MyAppName.csproj
中此后应用程序恢复正常内存使用率(200MB的一小部分 - 我看到的1.7GB)