商业Java分析器相对于免费分析器有什么优势,例如Netbeans中的那个?

偶尔我必须对Java代码进行一些分析工作,我想知道为什么我应该让我的老板在商业分析器中进行调查,而不是仅仅使用Netbeans或JConsole中的那个?

什么样的杀手特征会保证投资?

我有使用NetBeans探查器和JProbe的经验。 对于性能分析,我发现Netbeans非常有用,但JProbe优于内存分析。

JProbe具有用于比较堆快照和查找内存泄漏根本原因的优秀工具。 例如,在JProbe中,您可以直观地查看堆shapshots作为图形,选择要调查的节点,然后删除引用以查看实例是否可以进行垃圾回收。

根据我使用JProfiler的经验,它只是一个比NetBeans探查器更全面的流畅体验。 它更容易上手,更容易理解信息,虽然我没有测量过,但似乎JProfiler对被分析的应用程序的性能影响较小。

此外,JProfiler与IntelliJ IDEA很好地集成。 我必须使用NetBeans来使用NetBeans探查器,这很不方便,因为我必须手动配置自由格式项目以匹配我的项目布局。

NetBeans概要分析器可用。 与IntelliJ不同,我不会为我的个人项目购买JProfiler许可证,因为与IDE不同,它不是您每天都在使用的工具。 但是,对于有偿工作,没有理由不购买更好的工具。 与开发人员的时间成本相比,它并不昂贵。

如果您已经使用Netbeans,那么启动分析器很容易(除非您使用的是基于Maven的项目……叹息)。

我使用过付费的个人资料以及Netbeans。 Netbeans做得很好(当它第一次出现时有点粗糙……但现在好多了)。

代码我的配置文件不是很大,所以我不能说在分析中花费的时间是一个主要因素。

答案非常主观,完全取决于您的需求。 要看的东西:

1)在您的环境中易于使用(在NetBeans的情况下,内置的分析器可能是最简单的。

2)启动prfiler所花费的时间实际上让你获得可用的结果

3)它是一个采样或跟踪分析器吗? (概述如下: http : //docs.hp.com/en/5992-0757/ch05s01.html

4)您可以现场查看结果还是必须等待分析完成?

以下是关于Java分析器的slashdot讨论的链接: http : //ask.slashdot.org/article.pl? sid = 06/06/30/0053237

我没有使用Netbeans profiler,但尝试过JProfiler,Yourkit和JProbe。 我发现Yourkit略胜一筹(主要是从可用性方面购买)。 它中的一些有用function是:(您可以检查它是否在Netbeans中可用)

  • J2EE概要分析(例如,它显示了SQL查询花了多少时间)。
  • 快照比较和注释
  • 死锁检测器
  • 例外遥测

您可以在他们的网站上查看更多详细信息。

我会说,准备使用和更多性能统计。 去年,当我在一家跨国公司实习时,我被分配了一份剖析工作。 我使用了InfraRED分析器,它使用面向Java方面的API(与Aspectwerkz和AspectJ一起使用)。 但我不得不扩展分析器以获得我的经理想要的东西。 此外,分析器给出的性能统计数据也是有限的。

但在选择剖析器之前,我研究了一些其他的开源剖析器。 其中一些是微不足道的,并不适合我们想要的东西。

我还要补充一点,其中一些只是不起作用。 例如,如果我们要收集Web应用程序的性能统计信息,则所有分析器都不支持我们所需的统计信息。

使用完全独立的分析器,可以更轻松地将其与工具链中的其他应用程序集成。 例如,假设您希望在构建过程中运行探查器(例如,每晚一次)。 像JProfiler这样的东西很容易与ANT集成,而内置于IDE中的分析器可能会也可能不会。 如果您有一个单独的构建计算机,安装分析器的本地副本是有意义的,但安装整个IDE只是为了访问一个组件不会。

如果您使用的是Tomcat,您可以考虑使用lambdaprobe

http://www.lambdaprobe.org/

(这是免费的)

根据我的经验,YourKit profiler是最实用的一个。 小的可用性确实有所不同,但它也是最全面的,包含:

  • 最全面和可用的内存快照(也适用于1GB +堆),具有详细对象视图和原始数据,适用于每个对象。 (例如,在hashmap中,您可以看到对象是均匀分布的还是大多数存储在同一个存储桶中!)内存快照的详细信息及其易用性是我的主要原因。
  • 开销非常小(远远低于我使用的许多其他分析器)
  • 比较快照
  • J2EE概要分析
  • 死锁检测器,锁状态(我认为它仍然错过java.concurrent.locks,芽为同步它很棒)

除此之外,它也在不断改进,所以谁知道未来的抱着:)

比较这些function,看看你是否真的需要商业软件提供的免费function。 如果是,则值得投资。