Apa itu "(program)" di profiler debugger Chrome?

Jawaban:

95

(program)adalah Chrome itu sendiri, akar pohon memanggil semua kode lain ... itu ada di sana karena lompatan dari kode asli ke JavaScript, pemuatan sumber daya, dll. harus dimulai di suatu tempat :)

Anda dapat melihat contoh treeview di dokumen alat pengembang Chrome .

Nick Craver
sumber
43
ah - jadi kalau itu persentase yang tinggi, adakah yang bisa saya lakukan?
hvgotcodes
2
@ hvgotcodes - Kedengarannya persentase dari semua bagian di bawah ini. Sekarang jika persentase diri tinggi, tidak banyak yang dapat Anda lakukan .... kecuali markup Anda secara umum sangat berat.
Nick Craver
1
Apakah Anda tahu cara mengakses kode di bagian "(program)"? Entah bagaimana bagian dari JavaScript dalam proyek yang saat ini saya kerjakan tidak berakhir di sana, dan satu-satunya cara saya bisa sampai di sana dalam debugger adalah dengan menempatkan "debugger;" ke dalam kode, yang tidak cukup nyaman.
Jaroslav Záruba
6
Saya pikir ini sebenarnya salah dan jawaban @ user1009908 benar. Ini bukan root, kode aslinya. Itu didukung oleh fakta bahwa contoh tampilan pohon tidak menunjukkannya sebagai root.
studgeek
3
Mengenai tingginya% program (), terkadang animasi css menyebabkan penggunaan CPU yang tinggi, yang akan tercermin dalam program (). Sayangnya profiler tidak dapat membantu menunjukkan sumbernya.
ılǝ
31

Saya percaya (program) adalah kode asli, bukan akar pohon.

Lihat utas ini:

https://bugs.webkit.org/show_bug.cgi?id=88446

Jadi, lebih seperti pemanggilan sistem daripada like main ().

Ternyata itu termasuk waktu idle. Juga, beberapa profil (program) tersedia dari chrome: // profiler /

pengguna1009908
sumber
7
Setuju - tetapi hanya pembaruan: tidak termasuk waktu idle lagi. Itu sekarang sedang dilaporkan secara terpisah sebagai (idle)
Gio
15

Seperti yang dikatakan @Nick, harus dimulai dari suatu tempat.

Sepertinya bagian CPU Profiler seperti banyak profiler lain yang didasarkan pada konsep yang sama dengan gprof .

Sebagai contoh, self hampir merupakan angka yang tidak berguna kecuali ada semacam gelembung-semacam array angka dalam beberapa kode yang dapat Anda edit. Sangat tidak mirip.

Total harus mencakup betis, jadi itu lebih berguna. Namun, kecuali sampel diambil selama waktu yang diblokir dan juga selama waktu berjalan, itu masih sangat tidak berguna kecuali untuk program yang sepenuhnya terikat CPU.

Ini memberi Anda statistik ini berdasarkan fungsi, bukan oleh baris kode. Itu berarti (jika Anda bisa mengandalkan Total persen) bahwa suatu fungsi menghabiskan biaya yang sangat besar, dalam arti jika Anda bisa membuatnya butuh waktu nol, seperti dengan mematikannya, persen itu adalah berapa banyak waktu yang akan Anda hemat.

Jadi jika Anda ingin fokus pada fungsi yang mahal, Anda perlu mencari di dalamnya untuk apa yang bisa dioptimalkan. Untuk melakukan itu, Anda perlu tahu bagaimana waktu dibagi di antara baris-baris kode dalam fungsi. Jika Anda memiliki biaya berdasarkan garis kode, itu akan membawa Anda langsung ke garis itu.

Saya tidak tahu apakah Anda akan bisa mendapatkan profiler yang lebih baik, seperti sampler tumpukan jam dinding yang melaporkan di tingkat garis, seperti Zoom . Begini cara saya melakukannya .

Mike Dunlavey
sumber
@ hvgotcodes: Tidak yakin. Saya tidak menggunakannya, karena saya hanya mengambil stackshots di debugger. Tapi Anda menggunakan Linux, bukan? Bisakah Anda mendapatkan salinan percobaan Zoom? Itu cukup bagus.
Mike Dunlavey
@ hvgotcodes: Kalau begitu, satu-satunya bantuan yang bisa saya tawarkan adalah metode yang saya andalkan.
Mike Dunlavey