jstat 内存泄漏_Java内存泄漏 – jmap不显示类,但jstat不会显示

我排除了一个奇怪的内存泄漏.它特定于

Java8,不会发生在7u79上.

我没有访问Java代码.

我确切知道哪个用户操作导致泄漏,我知道泄漏是关于类(而不是堆),并且违规类很容易发现TraceClassLoading TraceClassUnloading:

[Loaded com.mastercard.mcwallet.sdk.xml.allservices.ShoppingCartRequest$JaxbAccessorF_oAuthToken from __JVM_DefineClass__]

[Loaded com.mastercard.mcwallet.sdk.... thousand similar classes per one user action... ]

这些类似乎增加了jstat -class的类计数器输出:

Loaded Bytes Unloaded Bytes Time

14045 26138.8 0 0.0 110.00 << buggy user action

14675 26754.6 0 0.0 110.05

15300 27364.9 0 0.0 110.10

15304 27370.9 0 0.0 110.11

15304 27370.9 0 0.0 110.11

15304 27370.9 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11 << buggy user action

15930 27982.2 0 0.0 110.18

16553 28589.3 0 0.0 110.23

16553 28589.3 0 0.0 110.23

事情是这些类从来没有从metaspace垃圾回收,从来没有[卸载],并且它们不会显示在jmap -clstats中.该命令报告较少的类,数量不增加,没有可疑的类加载器:

class_loader classes bytes parent_loader alive? type

2574 4493256 null live

0x0000000087d016d0 1 1471 0x000000008237f088 dead sun/reflect/DelegatingClassLoader@0x00007ff4135d02d0

... some lines omitted ...

0x000000008237f088 6505 12228227 0x0000000080383938 dead org/apache/catalina/loader/WebappClassLoader@0x00007ff411546ad0

... some lines omitted ...

total = 600 14002 25351427 N/A alive=1,dead=599 N/A

这是否响铃任何铃声或带来任何可以传递给程序员的提示?他们说他们无法找到泄漏.我可以通过使用JVM选项来阻止这种泄漏吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值