Java 迁移至jersey 2后性能下降

Java 迁移至jersey 2后性能下降,java,spring,jersey-2.0,Java,Spring,Jersey 2.0,我们正在使用Spring4、嵌入式Jetty9和jersey开发服务器。最近,我们转向了jersey 2.13,我们注意到性能下降。我用你的工具做了一些调查。我看到jersey在反射中使用了大量CPU。此外,工具包快照中还有许多NoSuchMethodExceptions和ClassNotFoundExceptions 是否有任何球衣配置或最佳实践来避免此问题,或优化球衣?或者这是泽西岛2号的一个已知问题 以下是YourKit中的两个屏幕截图,显示了排除套接字读取后的热点(java.net.S

我们正在使用Spring4、嵌入式Jetty9和jersey开发服务器。最近,我们转向了jersey 2.13,我们注意到性能下降。我用你的工具做了一些调查。我看到jersey在反射中使用了大量CPU。此外,工具包快照中还有许多
NoSuchMethodExceptions
ClassNotFoundExceptions

是否有任何球衣配置或最佳实践来避免此问题,或优化球衣?或者这是泽西岛2号的一个已知问题

以下是YourKit中的两个屏幕截图,显示了排除套接字读取后的热点(
java.net.SocketInputStream.socketRead0
)。第一个是合并被调用方:

第二个是带回溯的:


谢谢。

通过看你的问题,我无法指出确切的问题。但我可以建议您检查以下事项:

  • 检查最终生成中是否存在任何版本不同的重复库/JAR
  • 检查是否在最终构建中推荐了Spring/jersey可传递依赖项/jar版本
  • 如果您使用maven来构建项目,那么我建议使用maven依赖树插件来检查上述几点

    -
    Chiru

    你只是在看盲目的统计数字——在这个时间点上:谎言正在形成。有趣的是,这些例外来自哪里。那么至少你知道该责备什么,而不仅仅是指责“泽西2”。更有可能的是,它是配置的对象映射技术之一。深入挖掘,不要一有麻烦就停下来,你是对的。我没有给你看整张照片。我编辑了这个问题,希望它现在更清楚。最好用git(web.xml,app.java)公开你的代码,至少为了查看你的配置。我们是盲目的,为了帮助你。你好,在我看来,没有这样的方法例外是来自依赖性问题。有些软件包只声明接口,您的Web应用程序依赖于在运行时存在实现。更改jersey的版本(即实现)可能意味着更改其他相关依赖项的版本。请检查您的跑步记录您跑步有一段时间了吗?否则,您可能会看到启动部署统计信息。另外,为什么不启用插装以获得呼叫计数?这可能会帮助您了解每个请求执行了哪些操作,以及哪些操作只执行一次。