Meningkatkan Kinerja Aplikasi dengan Code Profiling

zain ilham
sinadin
Published in
2 min readApr 15, 2019
Loading meme…

Apa yang dilakukan code profiling?

Code profiling digunakan oleh developer untuk menemukan masalah kinerja aplikasi. Profiling dapat menjawab pertanyaan seperti berapa kali setiap method dipanggil dan waktu yang dibutuhkan untuk memanggil method-method tersebut. Beberapa profiler juga dapat memberikan informasi seberapa sering suatu SQL statements atau web service dipanggil. Salah satu contoh aplikasi profiling yang gratis adalah Prefix.

Manfaat code profiling?

Alasan utama menggunakan code profiling agar meningkatkan kinerja code. Kita dapat mengetahui bagian code mana yang membutuhkan 20% dari total CPU. Kemudian kita dapat mengoptimisasi bagian tersebut sedikit demi sedikit. Seperti kata guru seseorang dari internet, “ If you can improve something one percent every day, it doesn’t seem like a big improvement, but over the course of a month, you’re thirty percent better”. Selain itu code profiling juga dapat mencari memory leak dan memahami kinerja dependency calls (seperti SQL database call yang mengakses Redis untuk caching).

Ketika performance code yang kita buat bagus, maka itu akan meningkatkan user experience. Melihat respons aplikasi yang lemot, seperti meme yang ada diatas yang sampai sekarang pun belum selesai loading, akan membuat user kesal dan kecewa.

High level dan low level profilers

Terdapat dua level dalam penggunaan code profiler, yaitu high level dan low level. High level profiler akan melacak kinerja dari key method. Profiler ini biasanya digunakan untuk menghitung waktu transaksi, seperti menghitung seberapa lama waktu yang dibutuhkan untuk melakukan web request dan melihat error dan logs. High level profiler biasanya digunakan pada server agar dapat melacak kinerja aplikasi yang memiliki jutaan user yang sedang login.

Berbeda dengan high level profiler, low level profiler cenderung membutuhkan waktu yang lebih lama dan membuat aplikasi 100 kali lebih lama. Hal ini dikarenakan profiler akan mengecek kinerja dari seluruh baris yang ada semua method yang ada di aplikasi. Meskipun lebih lama, low level profiler akan melacak memory allocations dan garbage collection untuk membantu mencari memory leaks.

Tipe profiler

  1. Method/line level profiler — Profiler ini jarang sekali digunakan. Biasanya profiler ini digunakan untuk mencari masalah CPU yang aneh.
  2. Transaction tracing — Profiler ini adalah penggabungan antara high level dan low level yang dapat mencari masalah kinerja dan aplikasi. Profiler ini bagus digunakan pada tahap development dan dapat digunakan sehari-hari tanpa menghambat pekerjaan.
  3. APM — Profiler ini digunakan pada server yang bekerja pada application performance management (APM). Profiler ini dapat melacak kinerja aplikasi setiap waktu.

Sekian tulisan saya kali ini. Semoga teman-teman memahami penjelasan saya mengenai code profiling.

PROFILING IS ROCK

--

--