Perbandingan kinerja antara 4 metode yang dapat menambahkan item ke array:
Tambahkan menggunakan pengindeks
Salinan kode adalah sebagai berikut:
console.time ("index");
var a = [];
untuk (var i = 0, l = kali; i <l; i ++) {
a [i] = i;
}
console.timeend ("index");
Gunakan metode push
Salinan kode adalah sebagai berikut:
console.time ("push");
var a = [];
untuk (var i = 0, l = kali; i <l; i ++) {
A.Push (i);
}
console.timeend ("push");
Gunakan metode concat
Salinan kode adalah sebagai berikut:
console.time ("concat");
var a = [];
untuk (var i = 0, l = kali; i <l; i ++) {
a.concat (i);
}
console.timeend ("concat");
Gunakan metode concat, parameternya adalah array
Salinan kode adalah sebagai berikut:
console.time ("concat dengan array");
var a = [];
untuk (var i = 0, l = kali; i <l; i ++) {
a.concat ([i]);
}
console.timeend ("concat dengan array");
Mengatur waktu menjadi 100 juta kali:
Salinan kode adalah sebagai berikut:
Indeks: 0,310ms
Dorong: 1.476ms
Concat: 8.911ms
concat dengan array: 2.261ms
Mengatur waktu menjadi 100.000 (100.000) kali:
Salinan kode adalah sebagai berikut:
Indeks: 1.967ms
Push: 11.980ms
Concat: 70.410ms
concat dengan array: 28.292ms
Mengatur waktu ke 1000000 (juta) kali:
Salinan kode adalah sebagai berikut:
Indeks: 138.559ms
Push: 93.074ms
Concat: 608.768ms
concat dengan array: 243.371ms
Mengatur waktu menjadi 100.000 (10 juta) kali:
Salinan kode adalah sebagai berikut:
Indeks: 1473.733ms
Push: 611.636ms
Concat: 6058.528ms
concat dengan array: 2431.689ms
Meringkaskan
Kesimpulan ini hanya berguna dengan browser chrome
Efisiensi eksekusi metode concat adalah yang paling lambat
Dibandingkan dengan transmisi argumen dari dua metode CONDAT, ketika parameter yang diterima adalah array, efisiensi eksekusi lebih tinggi daripada parameter yang diterima sebagai non-array.
Dalam kebanyakan kasus, efisiensi eksekusi pengindeks lebih tinggi dari metode push.
Ketika jumlah eksekusi meningkat, efisiensi eksekusi pengindeks mulai lebih buruk daripada metode push
Perbandingan browser
Terima kasih kepada Netizens karena telah menunjukkan bahwa saya kurang pengalaman, jadi inilah perbandingan horizontal antara browser
Pertama, gunakan metode CONCAT. Dalam IE dan Firefox, parameternya adalah array, dan efisiensi eksekusi lebih lambat dari parameter lainnya adalah non-array, tetapi perbedaannya tidak besar.
Maka sudah pasti bahwa metode indeks dan dorong lebih cepat dari CONDAT. Menggunakan metode indeks di IE selalu lebih cepat dari dorongan. Dorongan sedikit lebih baik di Firefox tetapi perbedaannya tidak besar
Dibandingkan dengan efisiensi eksekusi indeks dan metode dorong antara tiga browser, efisiensi eksekusi Firefox jauh lebih tinggi daripada IE dan Chrome. Dalam jutaan kali, pada dasarnya 10 kali lebih cepat. Saya yang paling lambat dibandingkan dengan dua lainnya.
Berikut ini adalah hasil jutaan:
Salinan kode adalah sebagai berikut:
// Firefox
Indeks: Timer dimulai
Indeks: 229.79ms
Push: Timer dimulai
Push: 205.12ms
Concat: Timer dimulai
Concat: 2136.99ms
concat dengan array: timer dimulai
concat dengan array: 2365.18ms
`` `
Salinan kode adalah sebagai berikut:
// yaitu
Indeks: 2.533.744 milidetik
Push: 3.865.979 milidetik
Concat: 4.303.139 milidetik
Concat dengan array: 4.792.208 milidetik
Artikel ini hanya untuk mengeksplorasi kinerja JS. Ini akan memperdalam pemahaman teman Anda tentang JavaScript melalui perbandingan. Saya harap Anda bisa menyukainya.