Go マップの初期化: `make` は `{}` より速いですか?

Barbara Streisand
リリース: 2024-10-26 21:28:02
オリジナル
364 人が閲覧しました

 Go Map Initialization: Is `make` Faster Than `{}`?

Go でのマップの初期化: make と {}

Go では、{} リテラル構文または関数を作成します。この記事では、これら 2 つのアプローチのパフォーマンスを比較します。

パフォーマンスの違い

ベンチマーク テストによると、{} を使用してマップを初期化する場合と make を使用してマップを初期化する場合とでは、パフォーマンスの違いは無視できる程度です。結果はデー​​タセットのサイズとマシンの仕様によって若干異なる場合がありますが、一般に、両方の方法は同等に実行されます。

ベンチマーク コード

次のコードは 2 つのベンチマーク関数を定義します。 BenchmarkMakeLiteral と BenchmarkMakeMake。それぞれ、{} リテラルと make 関数を使用してマップを初期化するパフォーマンスを比較します。

<code class="go">package main

import "testing"

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

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

func InitMapLiteral() map[string]int {
    return map[string]int{}
}

func InitMapMake() map[string]int {
    return make(map[string]int)
}</code>
ログイン後にコピー

結論

ベンチマーク結果に基づくと、 {} リテラルを使用してマップを初期化する場合と、make 関数を使用してマップを初期化する場合とで、パフォーマンスに大きな違いはありません。初期化方法の選択は、個人の好みまたはプログラムの特定の要件に基づいて行う必要があります。

以上がGo マップの初期化: `make` は `{}` より速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!