nutch中插件机制引起的内存问题

Nutch 1.0使用WeakHashMap缓存插件导致Perm区内存泄漏问题,原因是每次查找插件时都会创建新的class和classload。解决方法是改用HashMap并调整缓存键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        由于Nutch1.0中,使用的插件机制,对每个插件是以conf为key缓存在ObjectCache中,其使用的是WeakHashMap,由于conf特意设计成符合WeakHashMap形式,所以每次根据conf查找插件时,都导致查找不到,会创建新的class和classload,正常情况下WeakHashMap种对象在gc的时候可以被回收,但是由于class和classload是存储在Perm区中,而处于Perm区中的对象,gc是不会去回收的,所以在sun的jdk中会出现Perm区内存泄露问题。解决方案就是不使用WeakHashMap而使用HashMap强引用,并不以conf作为key。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值