btc baner

Pages

Sunday, January 4, 2015

Optimalisasi kode program PHP

Kita sering menggunakan looping dalam aplikasi buatan kita seperti menggunakan for, while, foreach, dan sebagainya. Tahukan anda pemilihan penggunaan metode looping akan mempengaruhi kecepatan eksekusi aplikasi anda. Anda mungkintidak pernah memikirkan pentingnya optimalisasi kode program karena belum merasakan perbedaan berarti antara kode yang teroptimasi dan tidak. Namun bila anda telah merilis aplikasi anda dan digunakan oleh sangat banyak pengguna maka optimasi aplikasi pasti akan sangat diperlukan.
Resource server akan sangat terbebani oleh aplikasi yang kodenya tidak dioptimalisasi. Banyak orang yang mengatakan bahwa penggunaan framework akan membuat kinerja aplikasi akan berkurang dan resource yang digunakan akan sangat besar dibandingkan tanpa framework. Hal ini tidak 100% benar karena menurut saya performance suatu aplikasi tergantung optimalisasi yang dilakukan. Penggunaan framework memang akan lebih membebani server namun dengan optimalisasi aplikasi maka hal ini bukan suatu kendala. Misalnya penggunaan cache, dengan cache maka isu OOP yang dianut framework yang katanya butuh resource lebih besar hanya berlaku  pada saat awal loading. Load berikutnya resource yang digunakan akan sangat berkurang karena penggunaan cache.
Selain teknik optimalisasi cache ada beragam optimalisasi aplikasi yang dapat kita lakukan. Salah satunya optimalisasi kode program. Optimalisasi kode program akan membantu mengurangi beban server dalam eksekusi kode program pada saat menerima request yang berlebihan. Optimalisasi kode program PHP merupakan optimalisasi yang sangat dasar dalam perancangan aplikasi web. Setelah kode aplikasi di optimalisasi maka dapat kita lanjutkan ke optimalisasi database, dan web server. Berikut adalah beberapa panduan untuk mengoptimalkan kode PHP anda:
  • Sebisa mungkin deklarasikan method dalam class sebagai statik
  • Gunakan echo dibandingkan print untuk mengirimkan output ke browser.
  • Gunakan
    echo ‘a’;
    echo ‘b’;
    echo ‘c’;
    Dibandingkan menggunakan
    $string='a'.'b'.'c';
    echo $string;
  • Gunakan foreach dibanding menggunakan while untuk penelusuran.
  • Unset variable yang telah selesai digunakan terutama variable yang membutuhkan memori besar seperti array.
  • Hindari penggunakan magic seperti _get, _set, _autoload
  • Penggunaan require_once membutuhkan resource cukup besar, jadi pergunakan seperlunya.
  • Gunakan fullpath untuk include atau require karena bila menggunakan variable untuk path misalnya OS Path maka diperlukan waktu tambahan untuk parsing variable.
  • Hindari penggunaan regex bila masih bisa menggunakan function string seperti srncasecmp, strpbrk, stripos, dan lain-lain.
  • Untuk perbandingan variable, === akan lebih baik dibandingkan hanya ==.
  • Tutup koneksi database bila sudah selesai digunakan.
  • Hindari ouput error sebisa mungkin dalam aplikasi rilis sebaiknya hanya digunakan dalam debugging aplikasi;
  • Jangan menggunakan fungsi dalam statement loop misalnya for ($x=0; $x < count($array); $x)  karena akan memanggil fungsi untuk setiap loop.
  • Gunakan kutip untuk mengakses array. row[’id’] is 7  lebih cepat dari $row[id].
  • Hindari penggunaan variable global.
  • Gunakan single kutip dibanding menggunakan double kutip karena penggunaan double kutip akan mengecek variable di dalam string. Misalnya echo ‘Isi A=’.$a; lebih cepat dibandingkan echo “Isi A=$a”;
  • echo $a,$b,$c lebih cepat daripada echo $a.$b.$c
  • Sebisa mungkin gunakan html dari pada php untuk ouput. Misalnya
    <?php if($a):?>
    
       <p>A benar</p>
    <?php else:?>
    
       <p>A salah</p>
    <?php endif; ?>
    Lebih baik dibandingkan
    <?php
    if($a)
     echo '<p> A benar </p>';
    else
     echo '<p> B salah </p>;
    ?>
  • Gunakan pengecekan variable sebelum mengecek tipe variable. Karena pengecekan tipe variable yang tidak ada akan memakan resource lebih banyak.
  • ++$i lebih baik daripada $i++
  • gunakan lowercase karena true lebih baik dariTRUE false lebih baik dari FALSE dan null lebih baik dari NULL
  • $var===null lebih baik daripada  is_null($var)
  • Untuk memanggil fungsi dalam class maka sebaiknya gunakan reference operator &
    $a= new ClassA;
    $b=& $a->fungsiA();
    akan lebih baik dibandingkan
    $a= new ClassA;
    $b=$a->fungsiA();
Daftar diatas bukan nilai mutlak dari performance aplikasi anda karena perkembangan PHP memungkinkan optimasi kode program akan lebih baik. Sebaiknya selalu gunakan PHP versi terakhir karena akan selalu ada peningkatan performance. Contohnya PHP5 lebih lebih cepat dibandingkan PHP4. Beberapa panduan diatas hanya sekedar referensi untuk optimalisasi saja, terkadang untuk memudahkan maka kita tidak mengikuti panduan diatas. Hal itu tergantung pilihan dan kebutuhan anda sebagai web developer.

Referensi:

http://reinholdweber.com/?p=3
http://www.phpbench.com/
http://phplens.com/lens/php-book/optimizing-debugging-php.php
http://www.pradosoft.com/wiki/index.php/Coding_Conventions_and_Guidelines

0 komentar:

Post a Comment