![]() |
1
1
根据您使用的IBMJDK的确切版本,有多种跟踪“大分配”的选项。差异主要是在实现中,结果是在某个大小上进行分配时记录日志Java堆栈跟踪(这将有助于跟踪罪犯)。 “主权”1.4.2 SR4+: http://www-01.ibm.com/support/docview.wss?uid=swg21236523 “J9”1.4.2(如果Java在-XJ9选项下运行): 为了同样的目的,您需要获得一个jvmpi/jvmti代理,我现在找不到这个代理的链接。 |
![]() |
2
2
不确定是什么导致了这个问题,但下面是关于如何进一步调查的一个想法:
IBMJDK非常好,因为它可以配置为在收到sigquit信号时进行堆转储。
然后有一个名为heaproot的工具,它允许您查看这些转储文件中的内容。 找到对象的类型应该会导致你找到罪犯。 |
![]() |
3
0
只是暗示…曾经有一个项目由于堆碎片而遭受了严重的GC问题(WebSphere和IBMJDK)。最后,我们添加了一个JDK开关来强制堆压缩。 sun jdk不能有一个碎片堆,但是ibm jdk可以,这是由于内存/gc处理的不同。 试一试……我记不起魔法开关了。 |