Kir*_*ran 5 java jersey jersey-2.0 spring-boot java-mission-control
我最近将我的REST API从Jersey 1迁移到Jersey 2(确切地说是2.22.1).该应用程序作为春季启动应用程序运行.该应用程序收到相当大的流量.我使用JMC(Java Mission Control)分析了应用程序,并注意到Annotations(getEntityAnnotations()
)消耗了大量内存.jms截图中的更多细节:
从屏幕截图中可以看到312个Annotation[]
对象拥有1.55 GB的内存(每个阵列大约5 MB).我在getEntityAnnotations()
方法中有突破点,并观察到Annotation[]
只包含3个注释(HTTP方法,路径和消耗).Annotation对象只有几个字段.我无法解释大字段的原因.调试器截图中的更多细节:
有没有人遇到过类似的问题?
除了jms截图,我们可以观察到一半的内存来自Arrays.copyOf
.这是因为类中的getEntityAnnotations()
方法OutboundMessageContext
克隆了entityAnnotations
数组.这个特殊的实施已添加到球衣2.5作为机票JERSEY-2072的一部分.
我正在使用Java 1.8.0_60和spring boot 1.3.2.RELEASE.如果您需要有关应用程序或环境的任何其他详细信息,请与我们联系
归档时间: |
|
查看次数: |
537 次 |
最近记录: |