YourKit分析器用于分析快照。
已执行的步骤(针对唯一的用户):
我发现的是:
SomeEntity
#3: Captured snapshot JBoss-2014-10-07-1.snapshot 11m 37s - 21m 43s 183 4392 7896
<All the objects> 183 7896
java.lang.Object[] 182 7832
java.util.ArrayList 182 7832
somePath.someImpl 167 7208
java.lang.Object[] 164 7016
java.util.ArrayList 164 7016
org.apache.taglibs.standard.tag.rt.core.ForEachTag 164 7016
somePath.someAnotherImpl 3 192
java.lang.Object[] 3 192
java.util.ArrayList 3 192
org.apache.taglibs.standard.tag.rt.core.ForEachTag 3 192我们在这里看到的(如果我错了,请修复我),ForEachTag标记包含SomeEntity的164+3实例。我调查过jstl的问题,发现这个问题被复制了。例如,这里和这里。
但是,根据jsp规范(如果我错了,请修复我),据说doEndTag中不存在可空对象是可以的。其次,在上一个1.2jstl版本中已经解决了一些问题。在jBoss 7中使用的是1.2版本,因此,问题似乎仍然存在。
doEndTag()中的一个可为空的解决方案对象被认为是一种不好的做法。看这里的原因
接下来,我重复了前面由4个不同用户描述的操作。我可以发现,org.apache.taglibs.standard.tag.rt.core.ForEachTag持有的对象的数量现在是539+12。
至于我,-这是个记忆泄漏如果我错了,请治好我。如果不是,我们在这种情况下能做些什么呢?doEndTag方法中的可空对象?
发布于 2014-11-18 15:47:38
我没有给你的答案,但我们看到了与JBoss6和前端标签非常相似的东西。我们正在继续调查(当我找到你的职位),如果我们发现了什么,我们会告诉你的。
编辑
我们添加了这个修复程序,它解决了另一个内存泄漏问题,并且似乎也解决了这个问题。
对于Jboss,我们更新了:
<subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" instance-id="${jvmRoute}" native="false">
<configuration>
<jsp-configuration trim-spaces="true" tag-pooling="false"/>
</configuration>
我相信这是在standalone.xml文件中。
https://stackoverflow.com/questions/26234975
复制相似问题