Kapan harus menyimpan panjang array ke variabel lokal di C #

Membaca Habr, saya menemukan sebuah artikel " Apakah layak menyimpan panjang array ke variabel lokal di C #? " (Yang berada di bagian "terbaik"). Sepertinya saya pertanyaan bodoh, pengukuran tidak sepenuhnya benar (mengapa tidak ada pengukuran untuk loop bersarang?) Dan kesimpulan yang aneh.

Panjang array dalam C # harus disimpan dalam variabel terpisah dalam kasus ketika kita memiliki beberapa loop bersarang, di bawah ini adalah contoh.

Berikut ini adalah kode tes sederhana tanpa menyimpan panjang array ke dalam variabel:

Random rnd1 = new Random(DateTime.UtcNow.Millisecond); int[,] arr1 = new int[Int16.MaxValue, Byte.MaxValue]; for (int i = 0; i < arr1.GetLength(0); i++) { for (int j = 0; j < arr1.GetLength(1); j++) { arr1[i, j] = rnd1.Next(Int32.MinValue, Int32.MaxValue); } } 

Berikut adalah kode yang sama dengan menyimpan panjang array ke variabel:

 Random rnd1 = new Random(DateTime.UtcNow.Millisecond); int[,] arr1 = new int[Int16.MaxValue, Byte.MaxValue]; int len1 = arr1.GetLength(0), len2 = arr1.GetLength(1); for (int i = 0; i < len1; i++) { for (int j = 0; j < len2; j++) { arr1[i, j] = rnd1.Next(Int32.MinValue, Int32.MaxValue); } } 

Kode dengan menyimpan panjang array ke dalam variabel (opsi kedua) berjalan sekitar 15% lebih cepat.

Jawaban yang sama dapat ditemukan di buku-buku yang lebih atau kurang tebal di C # atau. Net, tetapi pada saat yang sama orang yang cerdas memposting ini di Habré dan tidak ada dalam komentar yang menunjukkan kepadanya bahwa panjang array dalam C # disimpan dalam variabel biasanya untuk loop bersarang dan di sana ia benar-benar memiliki artinya

Saya hanya ingin meninggalkan komentar di sana, tetapi saya tidak bisa pergi tanpa registrasi, dan setelah registrasi ternyata saya tidak bisa meninggalkan komentar di sana setelah registrasi (karena lebih dari 10 hari telah berlalu sejak publikasi). Mungkin seseorang akan memperhatikan catatan ini dan menyalinnya di sana sebagai komentar atau sesuatu seperti itu.

Source: https://habr.com/ru/post/id438516/


All Articles