Melakukan Profiling Dengan Zend Studio


Profiling adalah sebuah aktifitas untuk mengukur kode program, seperti waktu eksekusi sebuah function atau jumlah pemanggilan sebuah function. Dengan melakukan profiling, seorang programmer akan mengetahui bagian mana dari kode programnya yang lambat atau bagian mana yang lebih sering dipanggil. Zend Studio dilengkapi dengan profiler untuk situs PHP. Syarat untuk menggunakan profiler tersebut adalah server yang men-host aplikasi PHP harus memiliki extension Zend Debugger. Karena saya memakai Zend Server CE (versi gratis), maka Zend Debugger sudah ter-install dan aktif.

Untuk melakukan profiling dari Zend Studio, saya dapat men-klik kanan sebuah halaman PHP, lalu memilih Profile As, PHP Web Application. Sebagai alternatif lainnya, saya dapat memilih menu Run, Profile URL dan memasukkan URL yang merujuk ke halaman PHP yang akan diperiksa. Selain itu, bila saya men-install Zend Studio Toolbar di browser, maka saya dapat langsung men-klik tombol Profile saat mengunjungi sebuah halaman PHP seperti yang terlihat pada gambar berikut ini:

Melakukan profiling dari browser

Melakukan profiling dari browser

Setelah itu, Zend Studio akan menampilkan konfirmasi untuk beralih ke PHH Profile perspective. Bagi yang belum terbiasa dengan Eclipse, sebuah perspective adalah kumpulan beberapa window dengan lokasi tertentu yang biasanya dipakai untuk keperluan tertentu. Perspective yang biasa dipakai untuk mengembangkan kode program adalah PHP perspective. Untuk melakukan debugging, terdapat Debug perspective. Pengguna dapat berganti perspective dengan men-klik icon perspective yang diinginkan di sisi kanan atas Eclipse, atau memilih menu Window, Open Perspective. Bagi yang terbiasa dengan produk Adobe, perspective di Eclipse mirip seperti workspace di Adobe. Sebagai contoh, pada Adobe Photoshop CS5, saya dapat memilih workspace seperti Essentials, Design, Painting, 3D dan sebagainya. Jadi, jangan lupa bila ingin kembali coding, ganti perspective dari PHP Profile persepective menjadi PHP perspective.

Pada Profile Information, saya dapat menemukan grafis pie yang menunjukkan waktu eksekusi kode program, seperti yang terlihat pada gambar berikut ini:

Diagram pie untuk waktu ekseksusi

Diagram pie untuk waktu ekseksusi

Kode program yang saya profile adalah sebuah halaman PHP sederhana yang mengambil data dari database dan menampilkannya pada view dengan menggunakan Twig. Grafis di atas memperlihatkan bahwa Autoloader.php (untuk loading class yang dibutuhkan Twig) dan Database.php (melakukan query database) membutuhkan waktu paling lama.

Saya dapat menemukan informasi lebih detail di Execution Statistics seperti yang terlihat pada gambar berikut ini:

Tabel untuk execution statistics

Tabel untuk execution statistics

Sebagai contoh, gambar di atas memperlihatkan bahwa function autoload() di Autoloader.php dikerjakan sebanyak 70 kali. Saya dapat melihat informasi lebih detail lagi dengan men-klik kanan function tersebut dan memilih Open function invocation statistics. Zend Studio profiler akan menampilkan informasi seperti yang terlihat pada gambar berikut ini:

Tabel untuk invocation statistics

Tabel untuk invocation statistics

Bagian Selected function is invoked by: pada tab Function Invocation Statistics akan memperlihatkan siapa saja yang mengerjakan function autoload(). Sebagai informasi, ini adalah fungsi yang akan dikerjakan setiap kali terdapat penggunaan sebuah class baru yang belum dikenali. autoload() bertugas men-include file yang mewakili deklarasi class tersebut. Saya dapat memperoleh informasi lebih lanjut class apa saja yang dibuat dengan memeriksa bagian Selected function invokes: seperti yang terlihat pada gambar berikut ini:

Tabel untuk invoke statistics

Tabel untuk invoke statistics

Pada tab Execution Flow, saya dapat melihat statistik function dimana setiap function diurutkan berdasarkan urutan eksekusi, seperti yang terlihat pada gambar berikut ini:

Tabel untuk execution flow

Tabel untuk execution flow

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: