登录
首页 >  Golang >  Go问答

去测试./...内存不足

来源:stackoverflow

时间:2024-03-17 09:42:28 303浏览 收藏

当在构建系统上运行 go test ./... 时,内存消耗过大,有时高达 4Gb。为解决此问题,可以尝试按顺序运行测试,而不是并行运行。这可以通过使用 -p 1 选项来实现,它限制同时运行的测试包数量为 1。

问题内容

我正在我们的构建系统上运行 go test ./...,它占用了大量内存,有时在我们的一个系统上高达 4Gb。有没有办法让 go test 消耗更少的资源?

编辑:为了提供更多上下文,我们在 Docker 映像中运行测试。我们有 30 个目录,对于每个目录,我们创建一个 docker 映像并在其中运行测试。我们运行 make -j4 test_each_all_directories。 我们的机器有 15Gb 内存,每个目录占用 <2Gb(除了一个占用 4Gb 的目录)。

我正在寻找一种方法来“强制”go test 使用最大 3Gb 内存,或者对出现的问题有更多解释(事情没有加起来,15Gb 内存远远超过 4+2+2最多+2)


解决方案


您的测试可能需要更长的时间才能运行,但是您是否尝试过按顺序运行测试?来自go帮助构建

-p n
                the number of programs, such as build commands or
                test binaries, that can be run in parallel.
                the default is the number of cpus available.

默认情况下,如果可能的话,go 将并行运行多个测试包。要确保跨多个包的测试按顺序运行,请使用 -p 1 运行测试命令。您的测试命令将变为:

go test ./... -p 1

好了,本文到此结束,带大家了解了《去测试./...内存不足》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>