gpt4 book ai didi

.net - 对 yourkit .NET 分析器的看法?

转载 作者:行者123 更新时间:2023-12-01 05:46:32 25 4
gpt4 key购买 nike

有人在使用 yourkit 制作的 .NET 分析器吗?我正在寻找一个好的 .NET 分析器并偶然发现了 yourkit 一个。因为我会购买单人许可证,所以对我来说将花费 79 欧元,恕我直言,这还不错。我还喜欢:或多或少易于使用和友好的 GUI。

但是我在分析 .NET 应用程序方面不是很有经验,所以我想知道 yourkit .NET profiler 是否能完成工作。不过,Yourkit 在 Java 世界中似乎非常有名。

有什么意见吗?

最佳答案

观点?是的。当您决定购买或不购买哪个分析器时,give this a try .

添加:@Max:分步说明:IDE 有一个“暂停”按钮。在 IDE 下运行您的应用程序,当它主观上很慢时,即在您等待它时,点击“暂停”按钮。然后获取调用堆栈的快照。

为了对调用堆栈进行快照,我所做的是显示它(这是调试窗口之一)。在 IDE 选项中,您可以找到有关在堆栈 View 中显示内容的选项。我关闭了显示函数参数的选项,因为这会使行太长。我对调用发生的行号和被调用函数的名称感兴趣。然后,在调用堆栈 View 中,您可以先“全选”,然后再“复制”,然后将其粘贴到记事本中。这有点笨拙,我知道,但我曾经用手把它们写下来。

我用这种方式取了一些 sample 。然后我会查看它们是否出现在多个样本上的线条,因为它们是耗时的。有些只是必要的,比如“call main”,但有些不是。那些是金块。如果我没有找到,我会继续采集样本,最多大约 20 个。如果到那时我仍然没有找到任何(非常不寻常的)程序,那么程序已经得到了很好的优化。 (关键是每次你这样做程序都会变得更快,并且在这个过程中剩余的性能问题变得相对更大并且更容易找到。即不仅程序变得更快了某个比率R,而且剩余的问题以相同的比率按百分比变大。)*

在这个过程中我做的另一件事是问自己程序在做什么以及为什么在那个示例中。 “为什么”非常重要,因为这就是您如何判断一条线路是否真的需要或可以用更便宜的东西替换的方式。如果我不确定它为什么在那里,我会稍微单步执行一下,也许查看数据,或者让它返回几个级别(shift-F11),直到我明白它在做什么。这就是它的全部内容。

如果现有的分析器实际执行堆栈采样、保留样本、按包含它们的样本百分比对行进行排序,然后让您详细研究单个样本,则现有的分析器可以帮助完成此过程。也许他们会在某个时候,但他们现在没有。他们被效率和衡量等问题所困扰。

*假设您的代码花费 90% 的时间做 X,9% 的时间做 Y,两者都不是必需的。取少量样本,您会看到 X,但可能不会看到 Y。如果修复 X,您将获得 10 倍的加速。再次进行采样(您可能需要在程序周围包裹一个外部循环,以便您可以采样)。现在您可以肯定地看到 Y,因为现在它需要 9% x 10x = 90%。修复它会给你另外 10 倍,整体加速 100 倍。

关于.net - 对 yourkit .NET 分析器的看法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com