gpt4 book ai didi

go - 如何将Go的GC CPU使用率提高到25%以上?

转载 作者:行者123 更新时间:2023-12-01 20:26:07 29 4
gpt4 key购买 nike

根据一些文章(例如thisthis),Go的垃圾收集器最多只能占用25%的可用CPU,而且看来这个数字实际上是golang开发人员辛勤工作的结果-他们正在努力使这个数字相当小。

但是,由于就我而言,我想在特定时间运行GC(通过runtime.GC()),并且我还希望GC尽快完成,所以我想知道是否有可能使Go的GC使用多达100%的可用CPU。 ,这样GC可以更早完成。

这可能吗?

语境

我的代码具有确定的繁忙时间和空闲时间。由于繁忙部分的运行速度非常快(如果启动了GC,它会太慢),因此我想在空闲时间(也相对较短)内运行GC,因此GC也应该运行得很快。我不会使用非GC语言,因为不需要硬实时性,而且我也不聪明来正确地管理内存。

最佳答案

我找到了。如果我设置GODEBUG=gcstoptheworld=1GODEBUG=gcstoptheworld=2,则手动GC将利用所有可用的CPU,尽管这显然会禁用并发GC。引用:https://golang.org/pkg/runtime/

就我而言,这就足够了。但是我实际上想知道当并发GC工作时如何利用更多的CPU。似乎简单地增加gcGoalUtilization中的gcBackgroundUtilizationruntime/mgc.go的值并从源代码构建是行不通的。唔...

编辑

这绝对可以提高CPU利用率,但是实际上我看不到明显的加速(根据go tool trace)。也许我想念一些东西。

关于go - 如何将Go的GC CPU使用率提高到25%以上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62237772/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com