目前,我支持使用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编译的应用程序,然后再采取进一步的措施。

08-05 17:32