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 では、マップを初期化する一般的な方法が 2 つあります: {} を使用するか、または作る()。どちらも空のマップになりますが、2 つのアプローチの間にパフォーマンスの違いがあるかどうかという疑問があります。

これを調査するために、2 つの初期化手法を比較するベンチマーク テストを作成しましょう。

<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>
ログイン後にコピー

異なるマシンでベンチマーク テストを実行すると、一貫した結果が示され、2 つの初期化方法の間に大きなパフォーマンスの違いがないことがわかります。 {} と make() の実行時間はどちらもほぼ同じになります。

結論として、{} メソッドと make() メソッドは両方とも空のマップを生成しますが、一方を使用した場合に他方と比べてパフォーマンス上の明らかな利点はありません。 。この 2 つの間の選択は、個人の好みまたは特定の要件に基づいて行うことができます。

以上がGo でマップを初期化するために `{}` を使用するのと `make()` を使用するのとの間にパフォーマンスの違いはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート