Profiling? Apakah itu?

Marco Kenata
Basic People
Published in
3 min readApr 30, 2019
Photo by Ben White on Unsplash

Mungkin pada saat kita bermain game, kita mengenal istilah profile sebagai karakter kita sendiri, tapi pada saat programming, profiling sendiri menjadi beda istilah. Jadi apakah itu? Mari kita bahas!

Profiling adalah sebuah bentuk dari analisis program yang dinamis, yang mengukur memori suatu program, kompleksitas waktu suatu program, dan penggunaan instruksi-instruksi tertentu dan durasi pemanggilan fungsi. Dan paling umum itu profiling bertugas untuk mengassist optimisasi program.

Dalam program kami, kami mengukur profiling ini melalui performance tools dari chrome sendiri karena sejak React 16, tidak ada Profiler yang independen lagi untuk menjalankan.

Cara melakukan profiling ala Chrome adalah sebagai berikut :

  1. Klik kanan, lalu memilih Inspect
  2. Membuka tab performance.
  3. Langkah ini paling penting, karena kita harus menentukan apa yang harus dibuka terlebih dahulu, lalu jangan ditutup tab performance nya, sehingga dapat terekam dengan jelas.
  4. Tekan rekam dalam tab performance nya, lalu jalankan URL yang sesuai.
  5. Setelah URL tersebut berhasil ke-load maka hentikan rekaman yang ada.
  6. Di tab performance akan terlihat hasilnya.

Performance Tab Stats
Di tab performance tersebut setelah proses perekaman, kita dapat melihat bahwa ada update terbaru dari tab yang memunculkan gambar :

Contoh profiling.

Di atas, saya telah menjalankan tes untuk membuka tab disposisi dan melakukan error tindak lanjut. Lalu saya akan menjelaskan apa yang terjadi pada tab Performance.

Setelah melakukan perekaman, kita dapat membaca dari atas terlebih dahulu, yaitu :

Profile 1

Kita mulai baca dari atas, yakni dari FPS, semakin tinggi bar hijaunya maka semakin baik pula perjalanan aplikasi web tersebut bekerja. Selanjutnya kita lihat bar CPU, jika bar CPU tersebut memiliki grafik yang tinggi, maka kita dapat menyimpulkan bahwa mungkin saja ada perbaikan untuk menghandle algoritma.

Lalu kita lanjut kepada no 2

Tab ini bertujuan untuk menunjukkan waktu dan workload dari heap tersebut. Garis merah menunjukkan jumlah dokumen, garis biru menunjukkan berapa banyak memori JS yang digunakan, grafik oranye menunjukkan berapa banyak listeners yang digunakan, sedangkan grafik hijau menunjukkan berapa banyak node yang berjalan ketika aplikasi tersebut dijalankan.

Lalu kita lanjut kepada no 3

Tab ini bertujuan untuk menghitung total runtime dari awal sampai akhir run dari page tadi, dan juga menampilkan mana saja function yang paling ribet dibandingkan dengan yang lainnya.

Setelah kita melihat cara-cara profiling, kita dapat mengambil kesimpulan berupa keuntungan profiling, berupa optimisasi hal-hal berikut ini :

  1. Algoritma
    Optimisasi algoritma yang dipakai di fungsi. Fungsi yang umumnya di optimisasi adalah loading time, apakah kodingan tersebut bergantung satu sama dengan yang lainnya.
  2. Arsitektur
    Optimisasi penggunaan memory, seperti caching, sehingga menentukan apakah suatu array memakai terlalu banyak space, sehingga penggunaan memory menjadi lebih sedikit.
  3. Organization
    Menggunakan clean code untuk optimisasi , sehingga semua fungsi yang digunakan seminimal mungkin berhubungan satu sama lain, sehingga optimisasi dapat dilakukan.

Optimisasi pada kelompok kita sekarang umumnya muncul pada bagian Organization, sehingga kode-kode yang redundant dapat menjadi clean, seperti di bawah ini:

sebelum dan sesudah clean code

Sekian blog saya, have a nice day!

--

--