基于Java的Web应用程序分析工具

基于Java的Web应用程序分析工具,java,profiling,profiler,Java,Profiling,Profiler,我们正在使用Struts2+Spring3.x+Hibernate3.x开发一个web应用程序。我们正在考虑使用良好的分析工具来避免任何潜在的问题 我是这个领域的新手,所以在做一些研究时,我找到了这两位候选人 杰克罗菲勒 视觉的 请提供您对这两个方面的反馈,或者如果有其他好的候选人,请提出建议。 关于这一点,我还有一些疑问 由于项目仍处于中间阶段,使用探查器的相关性如何 因为我们最初会在 开发系统,所以我不 我认为这是生产的复制品 可能有很多问题 只是超出了生产范围 一个操作系统能带来多大的

我们正在使用Struts2+Spring3.x+Hibernate3.x开发一个web应用程序。我们正在考虑使用良好的分析工具来避免任何潜在的问题

我是这个领域的新手,所以在做一些研究时,我找到了这两位候选人

  • 杰克罗菲勒
  • 视觉的
请提供您对这两个方面的反馈,或者如果有其他好的候选人,请提出建议。 关于这一点,我还有一些疑问

  • 由于项目仍处于中间阶段,使用探查器的相关性如何
  • 因为我们最初会在 开发系统,所以我不 我认为这是生产的复制品 可能有很多问题 只是超出了生产范围
  • 一个操作系统能带来多大的不同 在分析结果中,大多数 开发机器将是一个窗口 在登台和 生产将基于Linux

  • 请提供您宝贵的反馈。

    VisualVM是一个很棒的工具。很难相信从Sun/Oracle下载的JDK附带了这么好的东西。我建议使用JDK 6和更高版本。您所要做的就是获取应用程序的PID并将其交给VisualVM;剩下的就交给它了

    以下是对您的问题的回答:

    由于项目仍处于中间阶段,使用探查器的相关性如何

    我不知道你在这里是什么意思。我假设您正在询问分析器对性能的负面影响。你检查的是相对效应,而不是绝对数。您可以设定性能基线,进行更改,然后重新测量。探查器对这两种情况都是相同的

    因为我们最初会在 开发系统,所以我不 我认为这是生产的复制品 而且可能有很多问题需要解决 只是超出了生产范围

    您将只了解您测量的系统。如果开发与生产有那么大的不同,那么您所能做的就是改变的相对效果,而不是绝对值

    一个操作系统能在多大程度上改变 分析结果与大多数 开发机器将是一个窗口 在准备和生产时基于 将基于Linux


    如果你担心的话,我会在Windows和Linux上进行基准测试。我的猜测是,这是可以忽略不计的,但一次测量将证实或否定这一点。

    如果您使用Eclipse,并从Eclipse启动开发服务器,那么您就可以锁定。

    我对这两个方面没有任何经验,但我们确实运行了很多Java web应用程序(servlet容器和游戏服务器平台)。我们的开发和生产服务器是Linux和BSD的混合体,而我们的开发人员几乎什么都有:Linux、MacOS、Windows

    对于我们所有的评测需求,我们都使用Yourkit(http://www.yourkit.com/). 我们通常不会做很多分析工作来识别瓶颈等(尽管我们已经做了一些),但它被证明是发现死锁、内存泄漏、永久性问题等的一个很好的工具


    我们让它在生产服务器上以低影响模式全职运行,这样我们就可以在必要时获取快照,并在开发的所有阶段使用它。

    我对NetBeans中内置的探查器有很好的经验


    VisualVM中的探查器是NetBeans探查器的精简版本

    和JProfiler一起去。我已经用了3年了,它真的很棒,特别是在CPU评测方面。VisualVM不提供JProfile所提供的深入挖掘类型。它可以识别J2EE组件,并提供在流中激发的确切SQL。这非常重要,根据我的经验,95%的性能问题来自不负责任和不必要的数据库命中

    因为您使用的是Hibernate,所以分析将帮助您确定何时启用延迟加载以及何时启用对象、查询和关联缓存

    要回答你的其他问题

  • 无论您的项目处于什么阶段,如果您觉得它的性能不好,那么评测对您来说都是相关的。不要延迟,因为如果问题发生在核心组件的设计中,那么它很可能会在整个应用程序中传播,并且在以后的阶段很难修复

  • 达菲莫的回答

  • 差别很大。具有相同配置的Linux机器通常比Windows机器快得多,响应速度也快得多。但正如duffymo所回答的那样,评测可以为您提供热点以及每个组件和方法所花费的时间百分比。用于评测的应用程序类至少比正常场景慢50%(我使用JProfiler的经验)


  • @TPTP可能是一个很好的选择,但它有一个复杂的设置周期,正如我在大多数论坛和文章中读到的那样。我喜欢花更多的时间在评测上,而不是设置system@umeshawasthi:我无法将它与其他工具进行比较,当我记得正确的时候,这并不是一个问题。(一年前)我所说的只是我读到的,我自己没有用过。我一定会试试看