houbb / sensitive-word

👮‍♂️The sensitive word tool for java.(敏感词/违禁词/违法词/脏词。基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。请勿发布涉及政治、广告、营销、翻墙、违反国家法律法规等内容。高性能敏感词检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。)
https://houbb.github.io/opensource/sensitive-word
Apache License 2.0
4.1k stars 545 forks source link

关于内存回收问题 #53

Closed chenrj-u closed 4 months ago

chenrj-u commented 4 months ago

如当前使用按分类初始化两个wordData,删除一个分类后如何把当前分类初始化的wordData占用的内存回收,是否可以暴露个清理方法?

houbb commented 4 months ago

重新 init 可以满足需求吗?

chenrj-u commented 4 months ago

当前使用方法是init了多个SensitiveWordBs,重新init无法满足需求

houbb commented 4 months ago

这个具体的使用场景是什么? andriod 使用中,首先初始化。然后动态调整希望删除掉对应的内存占用是吗? 如果移除的分类把对应的词库设置为空集合,然后其他功能全部关闭,可以满足不。

houbb commented 4 months ago

第二个问题是其实不建议创建多个 SensitiveWordBs,统一使用一个,根据标签处理能否满足场景?

chenrj-u commented 4 months ago

第二个问题是其实不建议创建多个 SensitiveWordBs,统一使用一个,根据标签处理能否满足场景?

我这边场景是不同模块需要不同的过滤逻辑,比如党建相关需要的敏感词就会多点,其他地方可能不要那么多过滤,看了下标签应该满足不了

houbb commented 4 months ago

具体想要怎么样的回收机制?把词典构建占用的内存 map 销毁吗?

chenrj-u commented 4 months ago

具体想要怎么样的回收机制?把词典构建占用的内存 map 销毁吗?

是的是的 就想要这个

houbb commented 4 months ago

v0.16.1 已支持。

SensitiveWordBs wordBs = SensitiveWordBs.newInstance()
                .init();
// 后续因为一些原因移除了对应信息,希望释放内存。
wordBs.destroy();