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

        由于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。

你可能感兴趣的:(jdk,sun)