dotTrace功能

dotTrace是.NET应用程序性能分析器 ,可以在Visual Studio / JetBrains Rider中正常工作,并提供了检测和分析性能瓶颈的好方法。请阅读以获得更多详情。

一些支持的应用程序类型

剖析所有类型的.NET应用程序

dotTrace可帮助您查找各种.NET应用程序中的性能瓶颈,包括桌面应用程序,.NET Core,IIS或IIS Express Web服务器上托管的ASP.NET应用程序,Mono和Unity应用程序,WCF服务,Windows服务,通用Windows平台应用程序和单元测试。

支持Windows,macOS和Linux

在Windows,macOS和Linux上均可使用

在Windows上,dotTrace支持针对.NET Framework 1.0 – 4.7,.NET Core 1.0 – 3.0,Mono 5.10或更高版本以及Unity 2018.3或更高版本的项目。在macOS和Linux上,dotTrace只能用作JetBrains Rider的一部分,用于分析Mono和Unity应用程序

时间轴,采样,跟踪和逐行dotTrace分析模式

时间轴和更多分析模式

与仅允许您测量方法调用执行时间的“经典”性能分析不同, 时间轴分析揭示了如何及时分配调用。

通过将方法调用数据绑定到时间轴,此概要分析模式不仅可以简单地检测最慢的方法:它可以诊断事件顺序重要的性能问题,例如UI冻结,垃圾回收过多,工作负载分配不均匀,文件I效率低下/ O等。

但是,传统的分析模式在dotTrace中仍然可用。 采样性能分析是评估整体应用程序性能的最简单方法,而当您需要有关特定算法内部工作方式的详细信息时, 跟踪逐行性能分析模式是理想的选择。

时间线概要分析模式在起作用

新的剖析经验

您可以使用过滤器,调用树或图表将分析数据切片和切块。通过应用过滤器,您可以获得一组由特定条件选择的时间间隔。它的工作方式与在数据库上执行查询以准确获取所需数据非常相似。

例如,要确定UI冻结是否是由阻止垃圾收集引起的,您可以要求dotTrace在发生UI冻结并执行GC的主线程上选择所有时间间隔 。尽管听起来很复杂,但实际上只需单击两次即可切换此过滤器组合。

Visual Studio中集成了时间线查看器。导航到方法声明

深度Visual Studio / Rider集成

dotTrace与Visual Studio / JetBrains Rider深度集成,可帮助您在不离开IDE的情况下开始对当前开发的应用程序进行性能分析。现在,您甚至可以在IDE中直接查看和分析时间轴分析结果。在通话树中找到了热点通话?立即导航到方法声明!

Visual Studio / JetBrains Rider集成使您无需在IDE和事件探查器之间切换即可获得几乎无缝的分析体验。

配置文件异步调用

配置文件异步调用

dotTrace使您可以轻松分析异步代码: async调用的所有“部分”都显示在一个位置,因此您无需在不同的调用堆栈中搜索它们。

在Visual Studio中分析静态方法

剖析静态方法

dotTrace允许您立即分析代码中的任何静态方法。只需将插入号放在方法上,按Alt + Enter ,然后选择“ 调试” |“调试”。配置文件在操作列表中。

试想一下此功能可以做什么。编写代码后,就可以对代码的任何部分进行概要分析!无需构建解决方案,在探查器下运行它,执行运行新代码的使用场景等。

在远程计算机上运行配置文件

分析远程应用程序

大多数时候,您需要分析本地运行的应用程序。但是,如果您在远程Web服务器上遇到滞后的应用程序怎么办?

dotTrace可以连接到远程计算机以配置独立或Web应用程序或Windows服务。您甚至不必在那里安装dotTrace:只需复制一些文件。

将探查器附加到已经运行的进程

连接到正在运行的应用程序

dotTrace可以附加到正在运行的应用程序进行概要分析,并在捕获概要分析数据后立即分离。

这样可以最大程度地减少在探查器下运行应用程序带来的开销。更重要的是,它使您能够调查生产环境中的性能问题,在这些环境中 ,您每次都无法分析应用程序时就无法重启应用程序。

分析单元测试

配置文件单元测试

如果您拥有Visual Studio + ReSharper *捆绑包或JetBrains Rider **,则可以轻松地从代码编辑器或单元测试运行器开始对单元测试进行性能分析。

*即使没有安装ReSharper,您仍然可以分析NUnit,MSTest或xUnit提供的本机单元测试运行器。

**分析功能仅适用于“ ReSharper Ultimate + Rider”或“所有产品包”许可证的所有者。

传入HTTP请求分析

分析缓慢的HTTP请求

分析时间轴分析快照时,您可以过滤掉Web应用程序处理传入HTTP请求的时间间隔。获取准确的数据,确定确切的根本原因,然后在运行缓慢的方法中归零。通过时间轴分析使您的Web应用程序更快。

分析SQL查询

分析缓慢的SQL查询

使用时间轴分析来分析每个特定查询如何影响应用程序性能。“ SQL查询”过滤器显示所有SQL查询和SQL连接以及它们的性能统计信息。

为了您的方便,可以在单独的窗口中打开查询内容以进行进一步分析。您仍然可以通过选择一个或多个查询来筛选所有数据,并调查执行它们的方法。

不再有无效的SQL查询!

使用dotTrace分析API

分析SDK

通过分析SDK ,您可以直接从代码控制分析会话:以编程方式启动和停止收集分析数据,保存收集的快照等。

这启用了两种有价值的使用方案。首先,您可以使用SDK来缩小分析范围,并选择要分析的代码部分。第二种使用情况是自我配置的应用程序:您可以收集统计信息,以显示您的应用程序在最终用户计算机上的行为。

在事件探查器下运行单元测试构建步骤

持续集成支持

dotTrace带有命令行配置文件工具,可用于自动收集配置文件快照,如果要使配置文件成为Continuous Integration版本的一部分,则此工具必不可少。

如果您将JetBrains TeamCity用作CI服务器,请确保将dotTrace插件安装到TeamCity 。该插件可通过对集成测试进行概要分析来帮助您防止应用程序性能下降。您所需要做的就是为测试执行时间设置一个阈值,如果超过该阈值,该插件将自动拍摄性能快照并导致测试失败。

即时估算(调整时间)

估计性能提升

有时,在经过数小时的耗时功能优化之后,开发人员必须从头开始进行性能分析,以查看其优化是否确实有效。

这不是dotTrace的问题。分析器可以根据您设置的时间调整立即重新计算快照中的所有功能时序,而无需重新分析应用程序。这就像问探查器: “我是否可以将该功能优化40%?“只要指定函数或在特定类中的所有功能,新的时间。整个快照的时间值将重新计算。

比较快照

比较快照

dotTrace能够比较同一应用程序的任何两个性能快照 。它生成一个比较快照 ,该快照显示每个函数调用次数和所消耗时间的差异。可以与常规性能快照一样查看和分析比较快照。

下载dotTrace

实际使用10天免费试用