【问题标题】:Profiling memory usage of background task分析后台任务的内存使用情况
【发布时间】:2015-04-16 15:44:39
【问题描述】:

我正在编写一个使用 BackgroundMediaPlayer 的多媒体应用程序 (WP 8.1)。问题在于内存 - 后台任务经常因 OutOfMemoryException 而崩溃。我尝试通过代码查看是否有任何内存泄漏,但找不到任何内存泄漏。

我看到这篇文章描述了正在运行的应用程序的内存分析 - http://blogs.msdn.com/b/visualstudioalm/archive/2014/04/03/performance-profiling-on-windows-phone-8-1-with-visual-studio.aspx 后台任务如何实现相同的目标?或者还有其他方法可以查看如何优化后台任务的内存使用?

我已经尝试 GC.Collect 作为最后的手段,但没有帮助..

【问题讨论】:

  • 问题不是泄漏,而是没有发布的硬引用。我通常发现这些隐藏的地方是不明显的,它们是附加到您认为已释放的内存的事件处理程序。

标签: c# windows-runtime windows-phone windows-phone-8.1 background-task


【解决方案1】:

安装应用程序Field Medic,通过USB连接手机并在资源管理器中打开文件夹This PC\Windows Phone\Phone\Documents\FieldMedic\CustomProfiles,根据需要在该路径中创建缺少的文件夹。

下载此profile file,将其复制到手机上的CustomProfiles文件夹中。

启动 Field Medic 应用程序,转到 advanced,选择 custom 下的 Multimedia Memory Profile。

现在运行您的应用程序,当您捕获了几分钟的内存增长时,返回 Field Medic,停止跟踪。将 ETL 文件从 This PC\Windows Phone\Phone\Documents\FieldMedic\reports 复制到您的 PC 和 analyze it with Windows Performance Analyzer (WPA)

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2011-03-26
    相关资源
    最近更新 更多