Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

因为词典缓存导致内存无限制增加 #77

Open
xiaofeng-ling opened this issue Aug 23, 2023 · 1 comment
Open

因为词典缓存导致内存无限制增加 #77

xiaofeng-ling opened this issue Aug 23, 2023 · 1 comment

Comments

@xiaofeng-ling
Copy link

与问题 #60 一致

经过调试,发现是Jieba::$dag_cache和Jieba::$trie->cache两个缓存无限制增加导致的

原因似乎是新词发现导致的问题,特别是当分析大量文件的时候,如果词不在词典里面,会通过算法找出新词然后缓存起来以便后续使用,在cli模式下分析多个文本的时候会导致内存无限制增加

现在采用的解决方案是每处理一个文件后,清空这两个缓存,这样可以降低内存占用,但是缺点是之前缓存的新词直接失效,之后需要重新发现新词,对后续文本分析的性能和精确度有一定影响。
但是在我的应用中,我只需要对每个文件进行分词即可,并不需要考虑所有的文本集合,似乎这是目前可行的解决方案,但是否还会有其他影响目前尚且未知

@drttcrh
Copy link

drttcrh commented Jun 25, 2024

@xiaofeng-ling
Jieba::$trie->cache 这个参数我怎么没找到,可以给个demo吗?可以截图分享一下。cli模式,我测试了主要是因为每次都要Jieba::init(), Finalseg::init(), 然后都是使用static静态变量,导致内存一直增长,如果通过判断,只初始化一次,好像可以避免内存一直增加

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants