Saat menulis program JavaScript, jika Anda perlu mengetahui waktu eksekusi sepotong kode tertentu, Anda dapat menggunakan Console.time (). Namun, ketika menganalisis program JavaScript dengan logika yang lebih kompleks dan mencoba menemukan kemacetan kinerja, Console.time () tidak berlaku - analisis mendalam dari operasi program JavaScript dengan logika yang lebih kompleks berarti memasukkan sejumlah besar pernyataan konsol (waktu), yang tidak dapat diterima secara tidak dapat diterima. Untuk penyetelan program JavaScript dengan logika yang kompleks, cara yang benar adalah dengan menggunakan console.profile ().
Dukungan Browser
Firefox, Google Chrome dan Safari, yang telah menginstal plugin Firebug, semua pernyataan Support Console.Profile (), dan versi terbaru IE dan Opera juga menyediakan fungsi profil. Penggunaan konsol.profile () pada beberapa browser utama serupa. Artikel ini hanya memperkenalkan penggunaan konsol.profile () di Firebug. Satu hal yang patut dicatat adalah bahwa jika Anda menggunakan konsol Firebug untuk secara langsung menulis kode eksperimental JavaScript, maka console.profile () tidak valid.
Penggunaan konsol.profile ()
Penggunaan console.profile () sangat sederhana: masukkan console.profile () di mana Anda perlu memulai profil, dan masukkan console.profileEnd () di mana Anda mengakhiri profil. Kode berikut adalah contoh:
Salinan kode adalah sebagai berikut:
function dotask () {
dosubtaska (1000);
dosubtaska (100000);
dosubtaskb (10000);
dosubtaskc (1000.10000);
}
fungsi dosubtaska (count) {
untuk (var i = 0; i <count; i ++) {}
}
fungsi dosubtaskb (count) {
untuk (var i = 0; i <count; i ++) {}
}
fungsi dosubtaskc (countx, county) {
untuk (var i = 0; i <countx; i ++) {
untuk (var j = 0; j <county; j ++) {}
}
}
console.profile ();
dotask ();
console.profileEnd ();
Jalankan console.profile () sebelum menjalankan fungsi dotask (). Setelah fungsi dotask () selesai, informasi terperinci selama proses berjalan dari fungsi dotask () dapat dikumpulkan. Anda dapat melihat di konsol Firebug:
Dari hasilnya, kita dapat melihat bahwa waktu profil secara total 101,901 ms, melibatkan 5 panggilan fungsi. Judul default hasilnya adalah "profil", yang dapat disesuaikan dengan meneruskan parameter ke fungsi console.profile (). Misalnya, menggunakan Console.Profile ("Profil Tes") dapat mengubah judul profil ini menjadi "Profil Uji" dalam hasilnya, yang sangat berguna ketika beberapa proses profil dieksekusi secara bersamaan. Arti dari setiap kolom dalam hasil profil spesifik adalah:
1. Fungsi. Nama fungsi.
2.calls. Jumlah panggilan. Misalnya, dalam contoh di atas, fungsi dosubtaska () dieksekusi dua kali.
3. Persen. Persentase waktu yang dikonsumsi oleh panggilan fungsi ini secara keseluruhan.
4. Waktu Kemenangan. Tidak termasuk waktu yang dibutuhkan untuk memanggil fungsi lain, jumlah waktu yang dibutuhkan oleh fungsi itu sendiri. Misalnya, dalam contoh di atas, dotask () tidak diragukan lagi membutuhkan waktu lama untuk dieksekusi, tetapi karena butuh waktu untuk memanggil fungsi lain, tidak membutuhkan banyak waktu, hanya 0,097ms.
5. waktu. Berbeda dengan waktu sendiri, perhitungan total fungsi yang memakan waktu tidak dipertimbangkan ketika memanggil faktor ke fungsi lain. Dalam contoh di atas, fungsi dotask () mengeksekusi 101.901ms. Untuk waktu dan waktu sendiri, Anda juga dapat menarik kesimpulan: jika waktu lebih besar dari waktu sendiri, maka panggilan ke fungsi lain terlibat dalam fungsi.
6.Avg. Rumus perhitungan adalah: AVG = Waktu/Panggilan. Dalam contoh di atas, fungsi dosubtaska () dieksekusi dua kali, dan totalnya total 1,054 ms, sehingga rata -rata total waktu adalah 0,527ms.
7.Min. Memakan waktu minimum untuk memanggil fungsi ini. Misalnya, dalam contoh di atas, fungsi dosubtaska () dieksekusi dua kali, dan minimum yang memakan waktu adalah bahwa panggilan yang membutuhkan waktu lebih sedikit untuk menghabiskan 0,016 ms.
8.Max. Waktu maksimum untuk memanggil fungsi ini. Misalnya, dalam contoh di atas, fungsi dosubtaska () dieksekusi dua kali, dan proses yang memakan waktu maksimum adalah bahwa panggilan yang membutuhkan lebih banyak waktu untuk menghabiskan 1,038 ms.
9.file. File JS tempat fungsi berada.
Penggunaan tombol profil di firebug
Selain memasukkan pernyataan Console.Profile () ke dalam kode JavaScript, Firebug juga menyediakan tombol profil untuk kode JavaScript profil waktu secara dinamis dan real di halaman. Posisi tombolnya adalah:
Saat profil diperlukan, Anda dapat menekan tombol, dan jika operasi halaman berikutnya memicu kode JavaScript, Firebug akan merekamnya. Di akhir proses profil, cukup tekan tombol lagi. Hasil akhir konsisten dengan hasil yang diperoleh dengan memasukkan pernyataan konsol.profile ().