随着ReSharper工具2023.1早期访问程序(EAP) 5的发布,我们还在macOS和Linux上提供了dotTrace性能分析器的独立版本——适用于x64和ARM64处理器。你现在可以使用dotTrace作为一个独立的工具来分析你的。net Core、Mono和Unity应用程序在所有三个主要操作系统上的情况。
在这篇博客文章中,让我们看看如何在macOS上开始使用dotTrace。注意,对于Windows和Linux,工作流程是相似的。
为您的平台下载dotTrace
要单独下载dotTrace,您可以使用JetBrains工具箱应用程序。它提供了方便地访问所有JetBrains工具,并让您并排安装稳定和早期访问版本。
或者,通过点击适当的链接下载适合你的操作系统的版本:
- macOS x64的dotTrace
- dotTrace适用于macOS ARM64
- dotTrace适用于Linux x64
- dotTrace for Linux ARM64
- dotTrace适用于Windows x64
- dotTrace for Windows ARM64
选择你想要分析的内容,以及如何分析
启动dotTrace后,您将看到主屏幕。在这里,您将选择分析什么,以及如何分析它。此外,主屏幕还允许您访问早期分析器快照、教程等。您可以让dotTrace启动您的应用程序,或者分析一个已经运行的进程。
在Home屏幕的左侧,首先添加一个运行配置。macOS和Linux上的dotTrace可以让你选择一个独立的桌面或控制台应用程序来分析,以及一个。net Core, Mono或Unity应用程序。在Windows上,您可以选择其他几种应用程序类型,包括iis托管的应用程序和Windows服务。
在分析您自己的应用程序时,不要使用Debug模式来构建它们。理想情况下,使用释放模式。当应用程序以发布模式构建时,编译器会为您优化调用路径。它通常通过内联方法和其他技术提高应用程序的性能,并将为您提供更接近于在生产环境中运行的应用程序的相关结果。
在选择应用程序类型并找到要分析的可执行文件之后,您将能够选择分析模式。
您还可以选择其他几种分析模式:时间轴、采样、跟踪,在Windows上,逐行。下面是每个模式支持的内容的快速总结:
- 时间轴和采样收集有关应用程序中方法执行时间的信息。时间轴收集关于应用程序事件的其他数据,这些数据随时间分布。这使得更容易调查UI冻结、垃圾收集问题、线程饥饿等。通常,时间轴和采样对运行应用程序的开销很小。
- 跟踪和逐行收集有关应用程序中某个方法被调用次数的信息。跟踪在方法级执行,逐行(仅在Windows上)在语句级跟踪调用号。逐行跟踪和逐行跟踪将为您提供准确的呼叫号码,但由于它们增加了开销,因此用于测量呼叫时间是不可靠的。
通常,您的分析工作流将从Timeline分析开始。
dotTrace还允许您选择其他几个选项,例如是否要分析应用程序的子进程,使用应用程序中的分析API来控制何时从代码中捕获快照,等等。
都准备好了!现在可以单击Start,这将启动分析器和要分析的应用程序。
控制分析器快照
启动dotTrace对应用程序进行分析后,将显示一个分析器控制器。控制器允许您开始分析,并决定何时捕获可以调查的快照。您可以在图表中看到应用程序的CPU和内存使用情况,这对于确定希望捕获快照的CPU峰值可能很有用。
捕获了足够多的数据后,单击Get Snapshot and Wait保存快照并在dotTrace查看器中打开它。
分析快照
dotTrace查看器向您显示有关概要分析会话期间发生的事情的信息。在左侧,您将看到可以筛选的所有类型的事件。中心舞台是分析会话的时间轴,在这里您可以放大特定的时间。查看器的右侧显示了代码中花费大量时间的热点,以及所有方法的调用树。
dotTrace查看器中的所有内容都是一个过滤器。如果放大一段时间,所有视图都将更新以显示与该时间片相关的数据。如果选择要分析的特定方法调用,则在调用该方法时将看到时间轴突出显示,事件将被限制为在该时间范围内发生的事件。
请查看dotTrace文档以了解有关分析. net分析器快照的更多信息。
总结
ReSharper工具2023.1 EAP 5版本增加了对macOS和Linux上的dotTrace性能分析器的独立版本的支持——适用于x64和ARM64处理器。分析工作流与Windows上相同:选择要分析的应用程序,选择分析模式,捕获并分析快照。
如果需要在远程计算机上分析应用程序,可以使用dotTrace命令行分析器捕获快照,并在计算机上使用dotTrace查看器来分析它,无论您运行的是Windows、macOS还是Linux。当然,你也可以在Visual Studio中配置你的应用程序,也可以直接从Rider中配置。
尝试一下macOS或Linux上的dotTrace早期访问程序(EAP)版本,让我们知道它是如何运行的!