Mengoptimumkan penyalinan tatasusunan untuk prestasi adalah penting dalam aplikasi C#. Dalam siasatan ini, kami berusaha untuk menilai dan meningkatkan prestasi menyalin tiga tatasusunan ke dalam tatasusunan tiga dimensi tunggal.
double[] sortedIndex, sortedInstances, sortedLabels; double[] leftnode = new double[sortedIndex.Length, 3];
Kod awal yang dibentangkan dalam pertanyaan menggunakan gelung bersarang untuk menyalin elemen sumber tatasusunan ke dalam tatasusunan destinasi nod kiri. Pendekatan ini, walau bagaimanapun, mempamerkan prestasi perlahan disebabkan sifat berulang gelung.
Untuk menangani kebimbangan prestasi, pendekatan alternatif disyorkan menggunakan Buffer.BlockCopy. Kaedah ini direka khusus untuk memudahkan penyalinan pantas dan cekap tatasusunan jenis primitif dengan mengoptimumkan manipulasi memori pada tahap bait.
Buffer.BlockCopy(sortedIndex, 0, leftnode, 0, sizeof(double) * sortedIndex.Length); Buffer.BlockCopy(sortedInstances, 0, leftnode, sizeof(double) * sortedIndex.Length, sizeof(double) * sortedInstances.Length); Buffer.BlockCopy(sortedLabels, 0, leftnode, sizeof(double) * sortedIndex.Length + sizeof(double) * sortedInstances.Length, sizeof(double) * sortedLabels.Length);
Penanda aras prestasi mendedahkan peningkatan ketara menggunakan Buffer.BlockCopy berbanding dengan pendekatan gelung bersarang. Pengoptimuman ini amat jelas dalam senario di mana tatasusunan besar terlibat.
Kaedah Buffer.BlockCopy menawarkan penyelesaian yang lebih cekap dan dioptimumkan untuk menyalin tatasusunan dalam aplikasi C#. Mengguna pakai pendekatan ini boleh menghasilkan peningkatan prestasi yang ketara, terutamanya apabila berurusan dengan set data yang besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Penyalinan Tatasusunan dalam C# untuk Peningkatan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!