Permulaan Go Map: Adakah `make` Lebih Cepat Daripada `{}`?

Barbara Streisand
Lepaskan: 2024-10-26 21:28:02
asal
364 orang telah melayarinya

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

Permulaan Peta dalam Go: make vs. {}

Dalam Go, peta boleh dimulakan menggunakan sama ada sintaks literal {} atau buat fungsi. Artikel ini membandingkan prestasi kedua-dua pendekatan ini.

Perbezaan Prestasi

Ujian penanda aras mencadangkan bahawa terdapat perbezaan prestasi yang boleh diabaikan antara memulakan peta menggunakan {} atau membuat. Keputusan mungkin berbeza sedikit bergantung pada saiz set data dan spesifikasi mesin, tetapi secara umum, kedua-dua kaedah berprestasi setara.

Kod Penanda Aras

Kod berikut mentakrifkan dua fungsi penanda aras, BenchmarkMakeLiteral dan BenchmarkMakeMake, yang membandingkan prestasi memulakan peta menggunakan {} fungsi literal dan make, masing-masing:

<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>
Salin selepas log masuk

Kesimpulan

Berdasarkan hasil penanda aras, tiada perbezaan prestasi yang ketara antara memulakan peta menggunakan {} fungsi literal atau make. Pilihan kaedah permulaan hendaklah berdasarkan keutamaan peribadi atau keperluan khusus program.

Atas ialah kandungan terperinci Permulaan Go Map: Adakah `make` Lebih Cepat Daripada `{}`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!