GHGL项目-RSA加解密导致内存泄漏

描述:JVM最大堆内存是默认(即32G),在做登录压测的时候,在到200并发的时候,tomcat崩了,查看日志的时候发现堆内存竟然满值,总有那么一些值不能释放,查询哪些类没有被释放,发现没有被释放的,见下图:

 是java.util.HashTablesEntry和java.security.Provider.ServiceKey这两个类竟然占用了80%左右内存,一眼就看出了是加解密的问题,上网查看加解密导致内存泄漏的问题的时候,正好有原因和解决方法。
原因是加解密的工具类中有一个静态资源总是在增加一个new对象,而且无法释放,最后导致堆内存满值,
那段代码是:

 这个RSA加解密经常用到,
解决办法是:
private static BouncyCastleProvider bouncyCastleProvider = new BouncyCastleProvider(); Cipher cipher = Cipher.getInstance("RSA",bouncyCastleProvider);
这样就OK,
看一下一直增加新对象不释放的过程:
1、

 
2、

 3、

 4、

 
在此感谢亮亮、波波等大神的帮忙。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值