目前,我支持使用golang编写的数据库上的大表联接。但是gc花费太多时间。我想关闭go gc并手动触发它。如何配置go build args?
最佳答案
runtime
的软件包文档包含您需要的所有详细信息:
因此,您可以将环境变量GOGC
设置为百分比,该百分比是新分配的数据与上一个收集之后剩余的 Activity 数据的比率。
当上述数据比率达到GOGC
的值时,将启动(垃圾)收集。初始设置来自GOGC
env变量,如果未设置,则取自100
。值off
禁用垃圾收集。
在运行时,您可以通过调用 GOGC
来更改debug.SetGCPercent()
比率,并传递一个负值以将其禁用:
debug.SetGCPercent(-1)
您可以使用
runtime.GC()
“手动”触发垃圾回收。完全禁用GC可能不是您想要的。阅读
runtime
的完整软件包文档,在其中找到有关如何微调GC和如何跟踪GC运行的详细信息。分析它们并采取相应措施。还要注意Go 1.7是今天发布的,具有改进的垃圾收集器:
如果还没有,请先测试使用Go 1.7编译的应用程序,然后再采取进一步的措施。