Go에서 지도를 초기화하기 위해 `{}`와 `make()`를 사용하는 것 사이에 성능 차이가 있나요?

DDD
풀어 주다: 2024-10-30 05:54:02
원래의
640명이 탐색했습니다.

  Is There a Performance Difference Between Using `{}` and `make()` to Initialize Maps in Go?

Go의 지도 초기화: make와 {} 비교

Go에는 지도를 초기화하는 두 가지 일반적인 방법이 있습니다. 즉, {}를 사용하거나 만들다(). 둘 다 빈 맵이 생성되지만 두 접근 방식 사이에 성능 차이가 있는지에 대한 의문이 있습니다.

이를 조사하기 위해 두 가지 초기화 기술을 비교하는 벤치마크 테스트를 만들어 보겠습니다.

<code class="go">package main

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 = map[string]int{}
    }
    result = m
}

func BenchmarkMakeMake(b *testing.B) {
    var m map[string]int
    for n := 0; n < b.N; n++ {
        m = make(map[string]int)
    }
    result = m
}

func main() {
    testing.Benchmark(BenchmarkMakeLiteral)
    testing.Benchmark(BenchmarkMakeMake)
}</code>
로그인 후 복사

다른 머신에서 벤치마크 테스트를 실행한 결과 일관된 결과가 나타나 두 초기화 방법 간에 큰 성능 차이가 없음을 나타냅니다. {} 및 make() 모두 실행 시간이 거의 동일합니다.

결론적으로, {} 및 make() 메서드는 모두 빈 맵을 생성하지만, 둘 중 하나를 사용할 때 눈에 띄는 성능 이점은 없습니다. . 둘 사이의 선택은 개인 취향이나 특정 요구 사항에 따라 달라질 수 있습니다.

위 내용은 Go에서 지도를 초기화하기 위해 `{}`와 `make()`를 사용하는 것 사이에 성능 차이가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿