Profiling

Benedictus Alvin
PDB+R
Published in
3 min readMay 20, 2019
Hasil gambar untuk profiling performance

Halo semua, kembali lagi dengan saya Bene dan kali ini akan membahas sesuatu yang baru. Ternyata medium saya kemarin bukan yang terakhir, masih ada sisa individual review untuk tema Profiling. Jadi simak kembali dengan baik ya teman-teman semua!

Apa itu Profiling?

Profiling adalah suatu proses dalam menganalisis performa suatu program. Seperti mengukur memori suatu program, kompleksitas waktu suatu program, dan juga tingkat efisiensi penggunaan suatu intruksi. Hal yang diperhatikan oleh Profiling, diantaranya penggunaan sumber daya komputasi. Sumber daya tersebut mencakup CPU usage, memory usage, dan juga waktu eksekusi. Profiling berperan penting dalam mengassist proses optimisasi program. Kita jadi mengetahui bagian kode mana yang perlu di optimisasi kembali.

Implementasi dalam projek

Kami menggunakan library time bawaan Python untuk mengukur waktu eksekusi suatu baris kode. Salah satu contoh nya pada method create_data_mahasiswa.

Method yang dibuat sudah cukup cepat, sebab dapat dilihat waktu eksekusi method tersebut selama0.6447 detik. Waktu tersebut tergolong cepat dibandingkan dengan waktu standar dari timeout (5 detik).

Selain dengan menggunakan library bawaan Python, kita dapat juga menggunakan performance tools yang telah disediakan google chrome. Berikut adalah contoh performance dari proses login sebagai mahasiswa :

Proses diatas berlangsung selama 7 detik mulai dari halaman login hingga masuk ke dalam landing page sebagai mahasiswa. Pada tab performance di kanan, kita dapat melihat beberapa grafik yang menggambarkan performance dari aplikasi.

Data diatas berfungsi untuk mendeteksi pemakain CPU, jumlah FPS selama loading page, jumlah network yang digunakan, serta jumlah Heap yang digunakan.

Pada detik ke-6 hingga detik ke-7 (saat proses loading menuju landing page mahasiswa) terlihat peningkatan pada CPU usage.

Berikutnya, data ini berfungi untuk menunjukkan waktu dan workload dari heap tersebut. Dapat dilihat, pada detik ke-6 menuju detik ke-7 terdapat peningkatan juga.

Terakhir adalah summary dari proses yang berlangsung dalam rentang 7 detik tersebut. Kita dapat melihat total waktu yang diperlukan untuk loading, scripting, rendering, dan proses lainnya.

Nah, dari beberapa informasi diatas kita dapat mengukur performa dari algoritma serta aplikasi yang telah kita buat. Selain itu, adanya profiling membantu kita menemukan blok kode yang perlu di optimisasi untuk mempercepat proses pada kode tersebut.

Sekian pembahasan mengenai Profiling dari saya. Semoga tulisan (terakhir ?) saya ini dapat bermanfaat untuk teman-teman semua. Bye bye dan terus semangat menjalani hari-hari kalian!!

--

--