|
为什么程序消耗的内存越来越大
|
|
2010-03-02, 05:21 PM
(这个帖子最后修改于: 2010-03-02 05:37 PM by backluck.)
帖数: #1
|
|||
|
|||
|
为什么程序消耗的内存越来越大
#include <scws.h>
#include <stdlib.h> int main() { scws_t s; scws_res_t res, cur; char *text = "Hello, 我名字叫李那曲是一个中国人, 我有时买Q币来玩, 我还听说过C#语言"; int i; if (!(s = scws_new())) { printf("error, can't init the scws_t!\n"); exit(-1); } scws_set_charset(s, "gbk"); scws_set_dict(s, "/usr/local/scws/etc/dict.xdb", SCWS_XDICT_XDB); scws_set_rule(s, "/usr/local/scws/etc/rules.ini"); for(i = 0; i < 1000000; i++){ scws_send_text(s, text, strlen(text)); while (res = cur = scws_get_result(s)) { while (cur != NULL) { printf("Word: %.*s/%s (IDF = %4.2f)\n", cur->len, text+cur->off, cur->attr, cur->idf); cur = cur->next; } scws_free_result(res); } } scws_free(s); return 0; } //上面的程序消耗的内存越来越大,不解 |
|||
|
2010-03-04, 04:48 PM
帖数: #2
|
|||
|
|||
|
RE: 为什么程序消耗的内存越来越大
是什么版本呢,新的版本应该是没有内存泄露了。
越来越大你的监控方式是什么呢?最好能给出较为准确的数据以便判断。 |
|||
|
2010-03-04, 04:59 PM
(这个帖子最后修改于: 2010-03-04 05:04 PM by backluck.)
帖数: #3
|
|||
|
|||
| RE: 为什么程序消耗的内存越来越大 | |||
|
2010-03-04, 06:17 PM
(这个帖子最后修改于: 2010-03-04 06:38 PM by hightman.)
帖数: #4
|
|||
|
|||
|
RE: 为什么程序消耗的内存越来越大
非常感谢您的汇报,经仔细跟踪已经发现bug所在,稍后会发布1.1.1版本。
bug位地 xdict.h 中的(这是1.1.0起新加的功能,所以1.0.x的版本无此bug) #define SCWS_WORD_MALLOCED 0x100 只要将 0x100 改变 0x80 即可,因为 struct scws_word 中定义的 flag 为 unsigned char 即 8bit, 容不下 0x100 导致,所有的 ->flag |= SCWS_WORD_MALLOCED 失效,以至于在 scws.c 中无法正确的释放这些内存。 再次感谢您的汇报!对于长期运行的程序来说这造成的内存泄漏非常严重。 |
|||
|
|
| 可能相关的主题... | |||||
| 主题: | 作者 | 回复数: | 人气: | 最近发表 | |
| 为什么我编译SCWS-1.1.1失败 | assad | 2 | 396 |
2010-08-18 04:32 PM 最近发表: assad |
|
| 我在Linux下安装成功了,php中也运行了,但是分词不对,不知道为什么? | xyliufeng | 2 | 1,083 |
2010-05-10 01:58 PM 最近发表: xyliufeng |
|
| 请问:为什么我不能加载dll | xiang8xiang | 1 | 4,309 |
2009-02-20 04:12 PM 最近发表: hightman |
|
| 为什么我分出来的都是单字,不是词组? | yorsun | 4 | 10,422 |
2007-12-26 07:25 PM 最近发表: yorsun |
|

搜索
会员列表
日历
帮助


