yanyiwu / gojieba

"结巴"中文分词的Golang版本
MIT License
2.45k stars 303 forks source link

Free函数不能有效释放内存会造成内存泄漏 #87

Open imRainChen opened 2 years ago

imRainChen commented 2 years ago

近日发现服务器内存RES不断上涨,最终定位到jieba这里存在内存泄漏问题,测试代码如下:

GO VERSION:1.16.7

func main() {
  loop:
  var list []*gojieba.Jieba
  for i := 0; i < count; i++ {
      // todo: paths not define
      t := gojieba.NewJieba(paths...)
      list = append(list, t)
  }

  time.Sleep(5 * time.Second)

  for i := range list {
      list[i].Free()
  }

  goto loop
}

通过上述代码最终会因内存太大造成OOM进程被杀掉

ZhuRongGo commented 2 years ago

有修复了吗?

zhaochenxiao90 commented 2 years ago

你们怎么解决的

imRainChen commented 2 years ago

容器镜像换成 alpine 的解决了,不确定具体原因

leijiru1994 commented 2 years ago

容器镜像换成 alpine 的解决了,不确定具体原因

换成alpine镜像,是不是升级了相关lib库

hungtcs commented 1 year ago

mac m1 上面有类似的问题

liu86th commented 10 months ago

运行一段时间自动崩了 image