Rumah > pembangunan bahagian belakang > Golang > Adakah Terdapat Perbezaan Prestasi Antara Menggunakan `{}` dan `make()` untuk Memulakan Peta dalam Go?

Adakah Terdapat Perbezaan Prestasi Antara Menggunakan `{}` dan `make()` untuk Memulakan Peta dalam Go?

DDD
Lepaskan: 2024-10-30 05:54:02
asal
717 orang telah melayarinya

  Is There a Performance Difference Between Using `{}` and `make()` to Initialize Maps in Go?

Permulaan Peta dalam Go: make vs. {}

Dalam Go, terdapat dua kaedah biasa untuk memulakan peta: menggunakan {} atau buat(). Walaupun kedua-duanya menghasilkan peta kosong, terdapat persoalan sama ada terdapat sebarang perbezaan prestasi antara kedua-dua pendekatan.

Untuk menyiasat perkara ini, mari buat ujian penanda aras untuk membandingkan dua teknik permulaan:

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

Menjalankan ujian penanda aras pada mesin yang berbeza menunjukkan hasil yang konsisten, menunjukkan bahawa tiada perbezaan prestasi yang ketara antara kedua-dua kaedah permulaan. Kedua-dua {} dan make() menghasilkan masa pelaksanaan yang hampir sama.

Kesimpulannya, manakala kaedah {} dan make() kedua-duanya menghasilkan peta kosong, tiada kelebihan prestasi yang boleh dilihat apabila menggunakan satu daripada yang lain . Pilihan antara kedua-duanya boleh berdasarkan keutamaan peribadi atau keperluan khusus.

Atas ialah kandungan terperinci Adakah Terdapat Perbezaan Prestasi Antara Menggunakan `{}` dan `make()` untuk Memulakan Peta dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan