📜  Xamarin Profiler

📅  最后修改于: 2021-01-11 16:18:38             🧑  作者: Mango

Xamarin分析器

应用程序的成功取决于最终用户的经验。作为开发人员,我们可能会在应用程序中实现一些出色的功能。但是,如果应用程序充满了崩溃,则用户可能希望摆脱这种类型的应用程序。使用Xamarin开发移动应用程序很容易,但是仅仅开发移动应用程序还不够。要开发出色的移动应用程序,它必须传递特定的参数。应用程序应该易于使用;用户界面在所有设备和平台上都应该是完美的。应该有适当的内存管理;所有异常都应处理。使用Xamarin分析器,开发人员可以轻松地发现内存泄漏,解决性能问题和异常情况。 Xamarin分析器有助于了解应用程序的内存消耗。 Xamarin分析器提供的参数使该应用程序更加完美。

历史

从历史上看,Mono具有一些强大的功能,例如命令行Profiler,可收集有关在Mono运行时中运行的名为Monolog Profiler的程序的信息。 Xamarin Profiler是Monolog Profiler的图形界面,它支持在Windows上对Android,iOS和tvOS应用程序进行性能分析。

Xamarin Profiler提供了不同的选项来衡量性能,它们是:

  • 分配:它提供有关内存的数据。它为我们提供了有关内存分配,对象分配,专用字节和调用树的数据。
  • 周期:要跟踪内存周期,我们将获得周期图和堆栈跟踪-这有助于开发人员查找内存泄漏。
  • Time Profiler: Time Profiler用于跟踪应用程序的性能。

下载并安装

Xamarin Profiler是一个独立的应用程序,它与Visual Studio for Mac集成在一起。在这里,我们在IDE中启用分析。

下载并安装适用于我们平台的软件包

  • 苹果系统
  • 视窗

在Windows中下载

要下载Xamarin Profiler,请点击以下链接: https://download.freedownloadmanager.org/Windows-PC/Xamarin-Profiler/FREE-1.5.5.0.html

选中单选按钮以接受许可协议中的条款。

选择目标文件夹以安装Xamarin Profiler。

单击安装,它将开始安装。

安装开始:


下载后,启动安装程序以将Xamarin Profiler添加到我们的系统。

探查器支持

在以下平台上提供了对Xamarin Profiler的支持:

  • Visual Studio for Mac(带有企业版的macOS)
    • 安卓
      • 设备,仿真器
    • iOS
      • 设备和模拟器
    • tVOS(不支持时间工具)
      • 设备和模拟器
    • 苹果电脑
  • Visual Studio(企业版)
    • 安卓
      • 设备和仿真器
    • iOS [实验性]
      • 设备和模拟器
    • 操作系统
      • 设备和模拟器

Profiler基础

允许在我们的应用程序中进行性能分析

在成功分析应用程序之前,我们需要在应用程序的项目选项中允许“性能分析”。

为此,我们必须遵循以下步骤:

生成-> Android调试->启用开发人员检测

启动探查器

Xamarin Profiler可以在我们对Android或iOS应用程序进行性能分析时从IDE启动,也可以作为独立应用程序启动。

从Visual Studio启动

  • 首先,我们必须确保将应用程序加载到Visual Studio中,然后选择默认的调试配置。
  • 浏览到Visual Studio中的Analyze-> Xamarin Profiler ,以打开Profiler,如屏幕快照所示:

Visual Studio将启动Profiler并开始自动分析应用程序。探查器可用于测量内存和性能。内存管理可以通过分配和时间分析器工具来实现。

保存和加载Profiler会话

要随时保存分析会话,我们必须从Profiler菜单栏中选择File-> SaveAs。 Profiler以.mlpd格式保存文件。这是用于分析数据的高度压缩的格式。

安装Xamarin Profiler应用程序后,可以在我们的应用程序目录中找到该应用程序。

通过打开独立应用程序,我们可以将.mlpd文件加载到Profiler中。为此,我们必须选择“选择目标”并加载数据。

探查器功能

Xamarin Profiler分为五个部分,如下所示:

工具栏:位于Profiler顶部的工具栏,其中显示了启动和停止分析的选项。在这里,我们将选择目标进程,查看应用程序的运行时间,并选择显示探查器应用程序的拆分视图。

乐器列表:显示了分析会话中所有已加载乐器的列表。

图表:这些图表与工具列表中的相关工具水平相关。滑块(滑块的位置在Time Profiler的下方)可用于更改刻度。

仪器详细信息区域:这将显示当前仪器显示的数据。

检查器视图:这显示了由段控件选择的部分。本节取决于所选的仪器,包括:配置设置,统计信息,堆栈跟踪信息和根目录路径

Profiler的功能有:

分配:分配工具提供有关应用程序对象的信息,无论它们是创建的还是垃圾的收集。

分配图将显示在Profiler的顶部。分配图显示了性能分析期间按固定间隔的内存分配量。当前,分配图是分配的总数,而不是时间点上堆的大小。分配图永远不会下降,它会增加。分配图包括堆栈中对象的分配。即使对于同一个应用程序,图表的外观也会有所不同,这完全取决于我们使用的运行时版本。

分配图显示了分配工具中数据的不同视图。分配图使开发人员能够分析应用程序的使用方式和释放内存的方式。

视图是:

1.分配:分配显示所有分配的列表,并按类名称将其分组。该分配提供有关使用的类和方法以及使用的类的集合大小的信息。双击该类将显示内存分配。

分配的检查器视图提供了用于对对象进行过滤和分组的选项,提供了有关内存分配以及堆栈跟踪和根路径的统计信息。

  • 调用树:这将显示应用程序中所有线程的整个调用树,并包括有关每个节点上的内存分配的信息。在列表中选择一个元素时,所有同级节点均显示为灰色。我们可以展开树或双击元素以向下钻取。当我们显示数据视图时,可以使用显示设置(即检查器视图)来更改数据的显示方式。呼叫树包括两个选项;他们是:
    • 反向调用树:这包括从上到下的堆栈跟踪。反向调用树是一种方便的查看选项;它表示CPU花费时间的最深刻的方法。
    • 按线程分隔:此选项按线程组织调用树。

    • 快照:此区域显示有关内存快照的信息。当应用程序的性能分析处于活动状态时,我们可以生成这些。为此,我们必须单击工具栏上的“相机”按钮以捕获所有要查看的点,以查看保留和释放了多少内存。然后,我们可以单击每个快照来探究实际情况。

注意:在这里,我们必须注意,只有在对应用程序进行性能分析时,才能进行快照。

2.周期:通过使用C#和F#托管代码。通过使用C#代码,创建对象的引用将变得非常普遍和容易,而这些对象将永远不会被丢弃。该工具使我们能够查明这些对象并在我们的应用程序中显示循环的引用。

Time Profiler: Time Profiler仪器测量应用程序每种方法的花费时间。应用程序会定期暂停,并在每个活动线程上运行堆栈跟踪。仪器详细信息区域中的每一行均显示执行路径,该路径已遵循。

以下屏幕截图显示了应用程序运行时收到的样本数。

  • 调用树:调用树显示每种方法花费的时间。