小叮咚中文分词在处理大量数据的时候碰到了内存泄漏的问题
最近在测试小叮咚分词应用于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 check java memory leak tips
不知道大家在这方面有没有分享的经验。
相关连接:
[sandbox]Lucene中文分词的2个试验模块
» gRaSSland开发日记
|