Mallet Alphabet中的内存泄漏?

时间:2018-04-18 10:29:10

标签: java mallet

我使用Mallet 2.0.8进行主题建模。应用程序循环遍历一组文档并计算每个文档的主题模型(没有信息将在传递之间共享或之后聚合)。每个过程为当前文档构造一个带有new cc.mallet.types.Alphabet()的新字母。

但是,看起来字母表消耗的内存在每次传递后都无法进行垃圾回收,因为它在cc.mallet.types.Alphabet.deserializedEntries中被引用。似乎也有question on the mailing list regarding this issue

作为一种解决方法,我使用反射并将字段cc.mallet.types.Alphabet.deserializedEntries设置为java.util.concurrent.ConcurrentHashMap<K, V>的子类,在调用putIfAbsent(K, V)时什么都不做。

我现在的问题是:

  1. 这种解决方法对于所描述的用例是否安全?
  2. 是打算在每次传递中构建一个字母表,还是有更好的方法不会导致内存泄漏?

0 个答案:

没有答案