gpt4 book ai didi

.NET 内存分析工具

转载 作者:行者123 更新时间:2023-12-03 06:01:41 30 4
gpt4 key购买 nike

Possible Duplicate:
What Are Some Good .NET Profilers?

我正在寻找优秀的 .NET CLR 内存分析工具。

我的关键要求是它能够与 IIS 和独立的 CLR 应用程序良好地配合。理想情况下,我会看到分配了哪些对象、分配在何处以及它们的大小?

是否有人对您乐意推荐的特定工具有任何良好的体验?

最佳答案

我目前正在评估 Scitech .NET Memory Profiler 3.1ANTS Memory Profiler 5.1 。我在一两年前尝试过 JetBrains,它不如 ANTS,所以这次我没有打扰。从阅读网站来看,它似乎不像其他两个那样适合内存分析。

ANTS 和 Scitech 内存分析器都具有对方没有的功能,因此哪个最好取决于您的喜好。一般来说,Scitech 提供了更详细的信息,而 ANTS 则在识别泄漏对象方面确实令人难以置信。总的来说,我更喜欢 ANTS,因为它可以快速识别可能的泄漏。

根据我的经验,以下是每种方法的主要优缺点:

ANTS 和 Scitech .NET 内存分析器的共同功能

  • 实时分析功能
  • 其网站上有精彩的操作视频
  • 易于使用
  • 性能相当(明显比未连接分析器时慢,但不会让您感到沮丧)
  • 显示泄漏对象的实例
  • 基本上他们都做得很好

Ant

  • 一键式过滤器查找常见泄漏,包括:仅由事件处理程序保持事件状态的对象、已处置但仍处于事件状态的对象以及仅通过已处置对象的引用保持事件状态的对象。这可能是 ANTS 的 killer 级功能 - 因此发现泄漏的速度非常快。根据我的经验,大多数泄漏是由于事件处理程序未解除 Hook 而引起的,而 ANTS 只是将您直接带到这些对象。太棒了。
  • 对象保留图。虽然 Scitech 中提供了相同的信息,但在 ANTS 中解释起来要容易得多。
  • 除了对象本身的大小之外,还显示子级的大小(但不幸的是,仅当选择了实例时,而不是在整个类列表中)。
  • 与 Visual Studio 更好的集成(右键单击图表可跳转到文件)

Scitech .NET 内存分析器

  • 显示分配对象时的堆栈跟踪。这对于分配在许多不同位置的对象确实很有用。使用 ANTS 很难准确确定泄漏对象的创建位置。
  • 显示未处理的一次性元素的数量。虽然并不表示存在泄漏,但它确实发现了解决此问题并通过更快的垃圾收集来提高应用程序性能的机会。
  • 更详细的过滤选项(可以独立过滤多列)。
  • 显示创建的对象总数(包括垃圾收集的对象)的信息。 ANTS 仅显示“实时”对象统计数据。这使得分析和调整整体应用程序性能变得更加容易(例如,识别哪些地方不必要地创建了许多不一定会泄漏的对象)。

总而言之,我认为 ANTS 可以帮助您更快地找到泄漏的内容,而一旦您知道要查看什么(例如创建时的堆栈跟踪),Scitech 就会提供有关整体应用程序内存性能和各个对象的更多详细信息。如果将堆栈跟踪和未处理一次性对象的跟踪添加到 ANTS,我将认为不需要使用其他任何东西。

关于.NET 内存分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/399847/

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