小编Har*_*yan的帖子

Visual Studio 2017的.NET Core 2.0性能分析

我用Visual Studio cpu profiler(Debug> Performance Profiler> CPU Usage)来描述我的[.net框架]应用程序,它描述了性能并提供了详细的报告:

.Net框架示例

此工具也适用于.net核心,但结果有些不同,并且不便于用户分析细节.

例如,当我检查"调用树"视图时,根节点是dotnet.exe,这是预期的.树的第二层是所有被调用的方法.但是当我扩展它们时,我没有得到那些方法调用的方法,而是看到[coreclr.dll].所以我不能通过这种方法检查热线.见下面的截图:

.Net核心示例

我已尝试附加到运行进程[iisexpress]而不是使用启动项目选项,但结果是相同的.

我想知道是否存在更好的方法来获得性能分析结果,就像它在完整的框架中一样?

我知道.net核心有一些第三方分析器,但我更喜欢使用Visual Studio,如果它可以工作的话.

编辑1:添加了截图

编辑2 当启用从Microsoft Symbol Server下载符号时,我获得了一些不同的结果,但不是预期的结果.它没有显示[coreclr.dll],而是显示了一堆.net核心方法.但问题仍然存在:

在此输入图像描述

如果我实现方法A()和B(),并且方法A()调用方法B(),那么B将不会嵌套在探查器报告调用树中的A节点内.相反,A会有一些来自coreclr的孩子.我无法理解这种行为的原因.

c# profiling performance-testing .net-core asp.net-core

7
推荐指数
0
解决办法
3450
查看次数