Rumah > pembangunan bahagian belakang > Golang > Adakah ia sentiasa lebih pantas untuk menggunakan salinan dan bukannya menambah pada kepingan?

Adakah ia sentiasa lebih pantas untuk menggunakan salinan dan bukannya menambah pada kepingan?

PHPz
Lepaskan: 2024-02-12 14:21:06
ke hadapan
528 orang telah melayarinya

Adakah ia sentiasa lebih pantas untuk menggunakan salinan dan bukannya menambah pada kepingan?

Kandungan soalan

Apabila mengembangkan kepingan secara berulang, mudah untuk melihat sebab memperuntukkan saiz terlebih dahulu (jika diketahui) adalah lebih cekap daripada menggunakan fungsi tambahan, kerana yang terakhir akan memutuskan setiap lelaran sama ada untuk meningkatkan saiz daripada kapasiti kepingan. Tetapi saya ingin tahu sama ada menggunakan bentuk variadik tambahan adalah kurang cekap daripada menggunakan binaan buat/salin apabila menggabungkan dua kepingan besar secara tidak berulang. Contohnya (dengan andaian sl1 dan sl2 adalah jenis []int)

sl = append(sl, sl2...)
Salin selepas log masuk

Perbandingan

nsl = make([]int, len(sl) + len(sl2))
i := copy(nsl, sl)
copy(nsl[i], sl2)
sl = nsl
Salin selepas log masuk

Saya fikir bahawa bentuk pertama (lebih mudah dibaca) akan tetap berfungsi, kerana saya menjangkakan masih ada perubahan kapasiti (berdasarkan bilangan hujah untuk panggilan tambahan). Betul ke saya berfikiran begitu?

Penyelesaian

appendcopy Gunakan salinan asas yang sama primitif.

Jika kepingan sasaran mempunyai kapasiti yang mencukupi, appendtiada ingatan akan diperuntukkan.

append Kod lebih mudah dibaca.

Atas ialah kandungan terperinci Adakah ia sentiasa lebih pantas untuk menggunakan salinan dan bukannya menambah pada kepingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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