Go 1.24: 벤치마크 테스트 | Matheus Mina

https://dev.to/mfbmina/go-124-benchmark-tests-439b

Go 언어에서는 go test -bench . 명령으로 벤치마크 테스트를 지원하고 있습니다.
위 블로그 글에서 1.24 버전부터 변경된 벤치마크 테스트 작성 방식을 설명하고 있습니다.

기존에는 테스트 실행 루프를 직접 작성해야 했고, 컴파일러가 테스트를 최적화하여 정확성을 떨어뜨릴 수 있었습니다. 이를 방지하기 위해 반환값을 글로벌 변수로 저장하는 추가 작업이 필요했습니다.

하지만 새로운 Go 버전에서는 b.Loop() 메서드만 사용하면 간소화된 문법으로 신뢰성 높은 벤치마크를 작성할 수 있습니다.

벤치마크 테스트 결과에서도, 이전 버전의 최적화된 방식보다 새로운 방식이 더 정확한 성능을 보여줍니다.

아래는 블로그 글에 작성되어 있는 벤치마크 결과 예시입니다.

goos: darwin
goarch: arm64
pkg: github.com/mfbmina/poc
cpu: Apple M2
Benchmark_FatorialLoop-8                                    39609032            30.50 ns/op
Benchmark_FatorialLoopWithoutCompilerImprovements-8         22448245            53.18 ns/op
Benchmark_FatorialRecursive-8                                1870860           574.9 ns/op
Benchmark_FatorialRecursiveWithoutCompilerImprovements-8     1984813           560.1 ns/op
Benchmark_FatorialLoop_1_24-8                               22177114            53.88 ns/op
Benchmark_FatorialRecursive_1_24-8                           2151256           556.8 ns/op
PASS
2개의 좋아요