Open weberhong opened 10 years ago
哦,当初想用来着,后来因为在go里面整xapian实在不方便,就没在go里面使用了。唯一一个用到的是在python里面跟xapian结合。这货还是c跟c++用着实在啊。新鲜的蟑螂 原始邮件 发件人: getwenotifications@github.com收件人: bylevel/goscwsgoscws@noreply.github.com发送时间: 2014年2月17日(周一) 17:56主题: [goscws] 内存泄露 (#1)func (s *Scws) Free() 应该增加对s.res的释放吧? C.scws_free_result(s.res)
另外,我看了一下scws的c源码 scws_fork/scws_free因为其对xdict/rule的管理是不加锁直接操作引用计数,因此在多线程下是不安全的,所以只能在最初初始化的时候在单线程环境下为每个线程fork一个备用
到了go中后,就不能动态启动一个goroutine,动态调用Scws.Fork()得到一个新的scws进行切词,用起来真是不方便,不知道你在实际用的地方是怎么处理这种问题的?
—Reply to this email directly or view it on GitHub.
func (s *Scws) Free() 应该增加对s.res的释放吧? C.scws_free_result(s.res)
另外,我看了一下scws的c源码 scws_fork/scws_free因为其对xdict/rule的管理是不加锁直接操作引用计数,因此在多线程下是不安全的,所以只能在最初初始化的时候在单线程环境下为每个线程fork一个备用
到了go中后,就不能动态启动一个goroutine,动态调用Scws.Fork()得到一个新的scws进行切词,用起来真是不方便,不知道你在实际用的地方是怎么处理这种问题的?