这是代码。
在golang main函数中,该函数位于main.go中
函数GetRgcService是一个空函数。
但是,当我使用
如何释放这些内存? 由于我需要使用此功能来完成很多过程。 这会导致大量的内存泄漏,无法释放
什么都没有泄漏。内存仍然可以访问,退出时不释放任何东西是很常见的,这只花了不必要的时间,操作系统仍然会处理它。
这是分配给线程本地存储到仍在运行的线程的内存,因此释放它是不正确的。更好的问题是"如何停止该线程?",对此的答案是:您没有,Go运行时会处理它。在退出时不停止线程是很常见的,这只花了不必要的时间,操作系统仍然会处理它。
它与您的代码和函数调用无关,这是Go运行时为其自身分配的东西。
Go是一种垃圾收集语言,在上面使用valgrind不会告诉您太多信息。它既不会检测到实际内存泄漏,也不会了解仍在使用哪个内存。
您可以手动运行垃圾收集:
https://golang.org/pkg/runtime/#GC
我认为这样可以释放内存,但是正如其他人所说的那样,当运行时的调度垃圾收集器运行时,该内存最终将被释放。