Heim  >  Artikel  >  Backend-Entwicklung  >  Go Map-Initialisierung: Ist „make“ schneller als „{}“?

Go Map-Initialisierung: Ist „make“ schneller als „{}“?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 21:28:02355Durchsuche

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

Karteninitialisierung in Go: make vs. {}

In Go können Karten entweder mit der {}-Literalsyntax oder dem initialisiert werden Funktion machen. In diesem Artikel wird die Leistung dieser beiden Ansätze verglichen.

Leistungsunterschiede

Benchmark-Tests legen nahe, dass es einen vernachlässigbaren Leistungsunterschied zwischen der Initialisierung einer Karte mit {} oder make gibt. Die Ergebnisse können je nach Datensatzgröße und Maschinenspezifikationen leicht variieren, aber im Allgemeinen funktionieren beide Methoden gleichwertig.

Benchmark-Code

Der folgende Code definiert zwei Benchmark-Funktionen: BenchmarkMakeLiteral und BenchmarkMakeMake vergleichen die Leistung der Initialisierung einer Karte mit dem {}-Literal bzw. der Make-Funktion:

<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>

Schlussfolgerung

Basierend auf Benchmark-Ergebnissen, Es gibt keinen wesentlichen Leistungsunterschied zwischen der Initialisierung einer Karte mit dem {}-Literal oder der Make-Funktion. Die Wahl der Initialisierungsmethode sollte auf persönlichen Vorlieben oder spezifischen Anforderungen des Programms basieren.

Das obige ist der detaillierte Inhalt vonGo Map-Initialisierung: Ist „make“ schneller als „{}“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn