去测试./…内存不足

问题描述 投票:0回答:1

我正在构建系统上运行go test ./...,它占用了大量内存,有时在我们的其中一个系统上占用高达4Gb的内存。有没有一种方法可以使go test减少资源消耗?

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

我当时正在寻找一种“强制”测试的方法,以使用最大3Gb的内存,或者对发生问题的原因进行更多的解释(事情没有加在一起,RAM的15Gb远远超过4 + 2 + 2 +最多2个)

go out-of-memory
1个回答
0
投票

您的测试可能需要更长的时间才能运行,但是您是否尝试过依次运行测试?从go help build

-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
© www.soinside.com 2019 - 2024. All rights reserved.