Perbandingan Prestasi Slice Append dan Assignment dalam Go
In Go, penghirisan memainkan peranan penting dalam mengurus data dengan cekap. Walau bagaimanapun, persoalan timbul mengenai perbezaan prestasi antara dua operasi hirisan yang biasa digunakan: tambah dan tugasan.
Lampirkan lwn. Tugaskan
Operasi append() memanjangkan kepingan sedia ada dengan elemen tambahan, manakala pengendali tugasan (=), apabila digunakan pada kepingan, hanya menulis ganti elemen sedia ada dengan nilai baharu.
Analisis Prestasi
Menanda aras kod berikut menunjukkan jurang prestasi:
Hasil penanda aras menunjukkan bahawa "a[i] = i" (tugasan) secara konsisten mengatasi prestasi "a = append(a, i)" (tambah):
Penjelasan
Prestasi "a[i] = i" yang lebih pantas boleh dikaitkan dengan sifat penugasan langsungnya. Ia hanya memberikan nilai i kepada elemen yang sepadan dalam kepingan.
Sebaliknya, "a = append(a, i)" melibatkan satu siri operasi:
Langkah tambahan ini memperkenalkan overhed berbanding dengan tugasan langsung dalam "a[i] = i ".
Kesimpulan
Memahami perbezaan prestasi antara operasi hirisan adalah penting untuk mengoptimumkan kecekapan kod. Untuk penetapan nilai mudah, "a[i] = i" terbukti sebagai pilihan yang lebih cekap. Walau bagaimanapun, apabila mengembangkan kepingan adalah perlu, "a = append(a, i)" kekal sebagai pendekatan yang sesuai.
Atas ialah kandungan terperinci Yang manakah lebih cepat dalam Go: `append()` atau tugasan slice?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!