Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
PHPzke hadapan
2024-02-12 14:21:06472semak imbas

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...)

Perbandingan

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam