【问题标题】:How to profile xamarin.forms app?如何分析 xamarin.forms 应用程序?
【发布时间】:2016-12-02 14:59:42
【问题描述】:

我使用 Xamarin.forms 制作应用并启动。

我想知道如何分析我的应用程序并检查内存分配和泄漏。 目前,(2016/12/2) iOS 工具不适合我。 一开始就结冰了。 (我已经知道冻结是正常行为,但它被冻结了,再也不会回来了)

这只是发生在我身上吗?还是你们呢?

我还注意到有 Xamarin 分析器。 但这是付费程序吗?

如何检查内存泄漏?

谢谢。

【问题讨论】:

  • @SushiHangover 嗨,我已经提到了乐器。但它不适用于我当前的 xamarin 版本。这对你有用吗?
  • 您可以使用原生 iOS(Instruments) 和 Android(Memory Monitor/TraceView) 分析器,但请记住,除非您使用像 Xamarin Profiler 这样的工具,否则无法跟踪托管内存或HeapShot.
  • @JonDouglas 那么你能给我你的意见吗?是否值得购买 Xamarin 分析器程序?我认为跟踪托管内存非常重要。但是有点贵。
  • 您可以完全访问System.GC 类。通过在某些大分配后吐出总内存,您可以轻松地制作一个穷人的探查器。例如,您调用GC.GetTotalMemory(false); 并登录到控制台/logcat,您可以直观地看到您的内存在哪里增加。

标签: xamarin memory-leaks xamarin.forms profile


【解决方案1】:

如果您想使用 Xamarin Profiler,您将需要 Visual Studio Enterprise 许可证:

https://www.xamarin.com/profiler

Xamarin Profiler 使用 Visual Studio Enterprise 许可证。它与 Xamarin Studio 5.6(或更高版本)和 Xamarin for Visual Studio 3.8(或更高版本)兼容。 "

【讨论】:

  • 我也提到了 Xamarin Profiler,但我必须购买许可证。
  • 是的,没有企业许可证,您无法分析 xamarin 应用程序。
【解决方案2】:

虽然对于 Xamarin 开发人员来说不方便(或信息丰富),但在 Android 上,一旦将其打包为 apk,您就可以在 Xamarin 应用上使用 Android 分析器:

https://docs.microsoft.com/en-us/xamarin/android/deploy-test/profiling#android-studio-profiler

这提供了一些基本的 CPU/内存随时间变化的信息。

另请参阅上面 Jon Douglas 的评论 - 在您的代码中的各个点,编写日志消息以报告 System.GC 看到的总内存(以及您在代码中的位置)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多