首頁  >  文章  >  後端開發  >  在 Go 中使用 `{}` 和 `make()` 初始化映射有效能差異嗎?

在 Go 中使用 `{}` 和 `make()` 初始化映射有效能差異嗎?

DDD
DDD原創
2024-10-30 05:54:02537瀏覽

  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn