Rumah > pembangunan bahagian belakang > Golang > Go Slices: Tambah lwn. Salin untuk Penyalinan Dalam – Manakah Lebih Cekap?

Go Slices: Tambah lwn. Salin untuk Penyalinan Dalam – Manakah Lebih Cekap?

Mary-Kate Olsen
Lepaskan: 2024-12-10 21:00:15
asal
602 orang telah melayarinya

Go Slices:  Append vs. Copy for Deep Copying – Which is More Efficient?

Penyalinan Dalam Yang Cekap bagi Kepingan

Dalam Go, mencipta salinan dalam hirisan melibatkan replikasi kandungannya ke lokasi memori yang berasingan. Ini memastikan bahawa sebarang pengubahsuaian yang dibuat pada satu keping tidak menjejaskan yang lain.

Satu pendekatan kepada penyalinan dalam adalah melalui fungsi tambahan:

copy := append([]T{}, orig...)
Salin selepas log masuk

Di sini, orig kepingan asal dilampirkan pada kepingan kosong, mencipta salinan kepingan baharu dengan tatasusunan sandarannya sendiri.

Kaedah alternatif menggunakan salinan terbina dalam fungsi:

cpy := make([]T, len(orig))
copy(cpy, orig)
Salin selepas log masuk

Pendekatan ini menyalin terus elemen dari orig ke cpy hirisan yang baru dibuat.

Kedua-dua penyelesaian menyalin nilai dalam kepingan dengan berkesan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika kepingan mengandungi penunjuk atau struct dengan medan penuding, nilai penuding ini masih akan merujuk kepada lokasi yang sama seperti dalam kepingan asal.

Menanda aras kedua-dua kaedah menghasilkan prestasi yang setanding:

BenchmarkCopy     100000         24724 ns/op
BenchmarkAppend   100000         24967 ns/op
Salin selepas log masuk

Kod pemasangan mendedahkan bahawa kedua-dua tambahan dan salinan mungkin melakukan pengisian sifar memori sebagai sebahagian daripada mereka operasi.

Akhirnya, pilihan antara kaedah tambah dan salin bergantung pada keutamaan individu dan pertimbangan prestasi. Walau bagaimanapun, kedua-dua pendekatan secara berkesan hirisan salinan mendalam, memastikan integriti data apabila bekerja dengan contoh data hirisan yang berasingan.

Atas ialah kandungan terperinci Go Slices: Tambah lwn. Salin untuk Penyalinan Dalam – Manakah Lebih Cekap?. 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