公司的项目,采用了go和c混编的用法,使用了cgo。大部分逻辑都是go调用c的函数,然后在运行过程中发现内存持续增长。我使用go tool pprof memprofile来检测内存情况,但是由于大部分的内存都是在c中申请和释放,导致我在pprof中只能看到少量的内存的使用情况(只有几百kb的使用),但是实际情况是内存是几十兆往上增,有没有哪位大哥知道对于cgo如何做内存泄露检测,感激不尽!!
我直觉是在这里可能是出现了逃逸问题导致了内存无法释放。
你没有贴你们典型的程序样本,所以不能判断。
话说你们的项目如果这么依赖C语言的话,为啥要加个薄薄的GO的外壳呢,感觉没啥意义。
#2