【发布时间】:2015-02-08 08:35:03
【问题描述】:
我们正在使用 spring 4、嵌入式 jetty 9 和 jersey 开发服务器。最近,我们迁移到球衣 2.13,我们注意到性能下降。我使用 YourKit 进行了一些调查。我看到 jersey 在反射中使用了大量的 CPU。另外,Yourkit 快照中有很多NoSuchMethodExceptions 和ClassNotFoundExceptions。
是否有任何球衣配置或最佳实践来避免此问题或优化球衣?或者这可能是球衣 2 中的一个已知问题?
这里有两张来自 YourKit 的屏幕截图,显示了排除套接字读取 (java.net.SocketInputStream.socketRead0) 后的热点。第一个是合并的被调用者:
第二个是Back Trace:
谢谢。
【问题讨论】:
-
你只是在看盲目的统计数据和数字——在这个时间点上:正在酝酿之中。有趣的是这些异常的来源。那么至少你知道该责备什么,而不是仅仅将矛头指向“球衣2”。更有可能是配置的对象映射技术之一。深入挖掘,不要一出现麻烦就停下来。
-
你是对的。我没有给你看全图。我编辑了这个问题,希望现在更清楚了。
-
至少可以在 git (web.xml, app.java) 中发布您的代码,以便查看您的配置。我们是盲目的,来帮助你。
-
您好,在我看来,没有这样的方法异常来自依赖问题。一些包只声明接口,而您的 web 应用程序依赖于运行时存在的实现。更改 jersey 的版本(即实现)可能意味着更改其他相关依赖项的版本。请检查您的 POM
-
你跑步有一段时间了吗?否则,您可能正在查看启动部署统计信息。另外,为什么不启用检测以便获得呼叫计数?这可能会帮助您查看每个请求完成了什么以及只完成了一次。
标签: java spring jersey-2.0