本文概述
应用程序的成功取决于最终用户的经验。作为开发人员, 我们可能会在应用程序中实现一些出色的功能。但是, 如果应用程序充满崩溃, 则用户可能希望摆脱这种类型的应用程序。使用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顶部的工具栏, 其中显示了启动和停止分析的选项。在这里, 我们将选择目标进程, 查看应用程序的运行时间, 并选择显示分析器应用程序的拆分视图。
乐器列表:这显示了用于分析会话的所有已加载乐器的列表。
图表:这些图表与工具列表中的相关工具水平相关。滑块(滑块的位置在时间分析器的下方)可用于更改刻度。
仪器详细信息区域:这将显示当前仪器显示的数据。
检查器视图:这显示了由段控件选择的部分。本部分取决于所选的仪器, 包括:配置设置, 统计信息, 堆栈跟踪信息和根目录路径。
Profiler的功能包括:
分配:分配工具提供有关应用程序对象的信息, 无论它们是创建的还是垃圾的收集。
分配图将显示在Profiler的顶部。分配图显示了性能分析期间按固定间隔的内存分配量。当前, 分配图是分配的总数, 而不是时间点上堆的大小。分配图永远不会下降, 它会增加。分配图包括堆栈中对象的分配。即使对于同一个应用程序, 图表的外观也会有所不同, 这完全取决于我们使用的运行时版本。
分配图显示了分配工具中数据的不同视图。分配图使开发人员能够分析应用程序的使用方式和释放内存的方式。
视图是:
1.分配:分配显示所有分配的列表, 并按类名称将其分组。该分配提供有关使用的类和方法以及使用的类的集合大小的信息。双击该类将显示内存分配。
分配的检查器视图提供了用于对对象进行过滤和分组的选项, 提供了有关内存分配以及堆栈跟踪和根路径的统计信息。
- 调用树:这将显示应用程序中所有线程的整个调用树, 并包括有关每个节点上的内存分配的信息。在列表中选择一个元素时, 所有同级节点均显示为灰色。我们可以展开树或双击元素以向下钻取。当我们显示数据视图时, 可以使用显示设置(即检查器视图)来更改其显示方式。呼叫树包括两个选项;他们是:
- 反向调用树:这包括从上到下的堆栈跟踪。反向调用树是一种方便的视图选项;它表示CPU花费时间的最深刻的方法。
- 按线程分隔:此选项按线程组织调用树。
- 快照:此区域显示有关内存快照的信息。我们可以在对应用程序进行性能分析时生成它们。为此, 我们必须单击工具栏上的”相机”按钮以捕获所有要查看的点, 以查看保留和释放了多少内存。然后, 我们可以单击每个快照, 以了解幕后情况。
注意:在这里, 我们必须注意, 只有在对应用程序进行性能分析时, 才能进行快照。
2.周期:通过使用C#和F#托管代码。通过使用C#代码, 创建对象的引用将变得非常普遍和容易, 而这些引用将永远不会被丢弃。该工具使我们能够查明那些对象并在应用程序中显示循环的引用。
Time Profiler:Time Profiler仪器测量应用程序每种方法的花费时间。应用程序会定期暂停, 并在每个活动线程上运行堆栈跟踪。仪器详细信息区域中的每一行均显示执行路径, 该路径已遵循。
以下屏幕截图显示了应用程序运行时收到的样本数量。
- 调用树:调用树显示每种方法花费的时间。