小叮咚中文分词在处理大量数据的时候碰到了内存泄漏的问题
最近在测试小叮咚分词应用于weblucene搜索引擎的效果。
我们使用的源数据XML格式文件大概1.2G。
创建完成后的索引文件对比如下:
源文件:1.2G
小叮咚分词生成的索引文件:2217MB
二元分词生成的索引文件:2618MB 两者相差:401M
更详细的对比可以查看:中文分词和二元分词综合对比
下面是一份对索引文件的对比,可以看出主要的差别在于项(term)信息的差别。
索引文件列表
(121M)小叮咚分词
(146M)二元分词
deletable
4
4
_fg4.f10
19K
19K
_fg4.f11
19K
19K
_fg4.f12
19K
19K
_fg4.f13
19K
19K
_fg4.f19
19K
19K
_fg4.fdt
80M
80M
域值
_fg4.fdx
156K
156K
域索引
_fg4.fnm
135
135
标准化因子
_fg4.frq
12M
23M
项频数
_fg4.prx
26M
36M
项位置
_fg4.tii
15K
74K
项索引
_fg4.tis
1.1M
5.8M
项信息
segments
17
17
在测试中碰到了2个问题,
1、内存泄漏
内存泄漏有两种情况:
一、随着时间的推移内存使用量逐渐增加(内存泄漏?),可以通过linux下的top命令观察到;
二、在程序运行半个小时候,内存使用量忽然增加,这时一般cpu的占用率也同时增加。
2、cpu占用率高
cpu占用率高和内存占用高成正比,就是当内存增长到150M左右的时候,cpu使用率就跳到了99.9%。
所以现在看来主要要解决内存使用量不断增加的问题。
lhelper也推荐了不少工具:
http://www.samspublishing.com/articles/article.asp?p=23618&seqNum=7&rl=1
http://tech.ccidnet.com/pub/article/c1112_a265199_p1.html
不知道大家在这方面有没有分享的经验。
相关连接: