Go에서 "make"와 "{}"를 사용하여 초기화된 맵 간의 성능 차이 공개
Go에서 개발자는 유연성을 갖습니다. "make"와 "{} 구문이라는 두 가지 방법으로 맵을 초기화합니다. 이로 인해 자연스럽게 이러한 접근 방식 간에 성능 차이가 있는지에 대한 의문이 제기됩니다.
성능을 비교하기 위해 벤치마크 테스트를 생성하여 다음을 수행할 수 있습니다. 두 가지 방법을 모두 사용하여 지도를 초기화하는 데 걸리는 시간을 측정합니다. 아래와 같이 제공된 벤치마크 테스트가 이를 보여줍니다.
<code class="go">package bench import "testing" var result map[string]int func BenchmarkMakeLiteral(b *testing.B) { var m map[string]int for n := 0; n < b.N; n++ { m = InitMapLiteral() } result = m } func BenchmarkMakeMake(b *testing.B) { var m map[string]int for n := 0; n < b.N; n++ { m = InitMapMake() } result = m } func InitMapLiteral() map[string]int { return map[string]int{} } func InitMapMake() map[string]int { return make(map[string]int) }</code>
이 벤치마크를 여러 차례 실행하면 두 가지 방법이 실질적으로 동일하다는 결과가 나옵니다. 성능:
$ go test -bench=. testing: warning: no tests to run PASS BenchmarkMakeLiteral-8 10000000 160 ns/op BenchmarkMakeMake-8 10000000 171 ns/op ok github.com/johnweldon/bench 3.664s $ go test -bench=. testing: warning: no tests to run PASS BenchmarkMakeLiteral-8 10000000 182 ns/op BenchmarkMakeMake-8 10000000 173 ns/op ok github.com/johnweldon/bench 3.945s $ go test -bench=. testing: warning: no tests to run PASS BenchmarkMakeLiteral-8 10000000 170 ns/op BenchmarkMakeMake-8 10000000 170 ns/op ok github.com/johnweldon/bench 3.751s
이는 평균적으로 "make"와 "{} 구문을 사용하여 맵을 초기화하는 것 사이의 성능 차이가 무시할 수 있고 본질적으로 동등한 것으로 간주될 수 있음을 나타냅니다.
위 내용은 Go에서 지도 초기화 시 \'make\'와 \'{}\' 사이에 성능 차이가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!