Tips dan Trik Optimalisasi PHP, MySQL dan Apache
Nama maupun logo dari PHP, MYSQL serta Apache pastinya sudah tidak asing lagi bagi kita.. Disini saya bukan ingin menulis tentang apa itu PHP, MYSQL serta Apache,apalagi untuk mengajarkan programmingnya, tetapi hanya ingin berbagi info tentangoptimasi (tips & trik) yang dapat diimplementasikan dari ketigasofware Open Source tersebut (PHP, MYSQL serta Apache).
Berikut saya posting hasil googling yang mungkin berguna dan dapat digunakan sebagai catatan, dirangkum atau dikutip dari berbagai sumber..
PHP Tips - Optimize How To
Source : id.nimhost.com
Sebagai web programmer tentu saja anda ingin membuat web site yang cepat di load dan tidak membebani kinerja server.
Berikut adalah tips untukmengoptimalkan kode-kode php anda sehingga kode php anda dapat lebihcepat di load dan di eksekusi oleh server dan tidak membebani ataumenggunakan terlalu banyak resource yang disediakan oleh server.
1. Penggunaan Variable
Penggunaan Variable
- Mengoperasikan variable yang sudah di set lebih cepat 376% dibandingkan menggunakan variable yang belum di set.
- Menggunakan constant lebih lambat 146% di banding menggunakan variable.
- Menggunakan lokal variable 9.9% lebih cepat di banding menggunakan global variable.
Fungsi String
- Menggunakan 'string' lebih cepat 0.26% di banding menggunakan "string”
- Menggunakan "string” lebih cepat 4% di banding menggunakan sintak HEREDOC
- Menggunakan "string\n” lebih cepat 108% di banding menggunakan 'string'.”\n”
- Menggunakan 'string'.$var lebih cepat 28% di banding menggunakan "string$var”
- Menggunakan 'string '.$var.' string' lebih cepat 55% di banding menggunakan sprintf('string %s string', $var)
- Menggunakan "\n” lebih cepat 70% di banding menggunakan chr(10)
- Menggunakan strnatcmp() lebih cepat 4.95% di banding menggunakan strcmp()
- Menggunakan strcasecmp() lebih cepat 45% di banding menggunakan preg_match()
- Menggunakan strcasecmp() lebih cepat 6.6% di banding menggunakan strtoupper($string) == "STRING”
- Menggunakan strcasecmp() lebih cepat 13% di banding menggunakan strnatcasecmp()
- Menggunakan strtr($string, $string1, $string2) lebih cepat 10% di banding menggunakan str_replace()
- Menggunakan str_replace() lebih cepat 161% di banding menggunakan strtr($string, $array)
- Menggunakan stristr() lebih cepat 10% di banding menggunakan stripos()
- Menggunakan strpos() lebih cepat 9.7% di banding menggunakan strstr()
- Menggunakan isset($str{5}) lebih cepat 176% di banding menggunakan strlen($str) > 5
- Menggunakan str_replace($str, $str, $str) 2x lebih cepat 17% di banding menggunakan str_replace(array, array, string)
- Menggunakan list() = explode() lebih cepat 13% di banding menggunakan substr($str, strpos($str))
Fungsi Numeric
- Menggunakan ++$int lebih cepat 10% di banding menggunakan $int++
- Menggunakan (float) lebih cepat 48% di banding menggunakan settype($var, 'float')
Fungsi Array
- Menggunakan list() = $array; lebih cepat 3.4% di banding menggunakan assigning each variable
- Menggunakan in_array() lebih cepat 6% di banding menggunakan array_search
- Menggunakan isset($array[$key]) lebih cepat 230% di banding menggunakan array_key_exists()
- Menggunakan !empty($array) lebih cepat 66% di banding menggunakan count($array)
Fungsi Output
- Menggunakan echo lebih cepat 5% di banding menggunakan print()
- Menggunakan echo ' '.' ' lebih cepat 0.44% di banding menggunakan echo ' ',' '
2. Function dan Method
Function dan Calling Method
- Menggunakan call_user_func() lebih lambat 54% di banding langsung memanggil function tersebut
- Menggunakan call_user_func() lebih lambat 59% di banding langsung memanggil sebuah static method
- Menggunakan call_user_func() lebih lambat 65% di banding langsung memanggil sebuah object method
- Menggunakan function() lebih cepat 119% di banding menggunakan static::method()
- Menggunakan $this->method() lebih cepat 116% di banding menggunakan static::method()
- Menggunakan declared static::method() lebih cepat 93% di banding menggunakan static::method()
Fungsi Umum
- Menggunakan Pass by reference lebih cepat 3% di banding menggunakan Return by reference
- Menggunakan No reference lebih cepat 1.7% di banding menggunakan Return by reference
3. Storage (Penyimpanan)
File System
- Menggunakan Scandir() lebih cepat 4% di banding menggunakan opendir(), readdir(), closedir()
- Menggunakan file_get_contents() lebih cepat 52% di banding menggunakan fopen(), fread(), fclose()
- Menggunakan file_get_contents() lebih cepat 39% di banding menggunakan implode(”\n”, file())
Fungsi Cache
- Menggunakan xcache_set() lebih cepat 1,645% di banding menggunakan file_put_contents()
- Menggunakan xcache_set() lebih cepat 646% di banding menggunakan memcache->set()
- Menggunakan xcache_get() lebih cepat 1,312% di banding menggunakan memcache->get()
4. Fungsi-Fungsi Lainnya
Fungsi Umum (General)
- Menggunakan if elseif else lebih cepat 0.78 % di banding menggunakan switch
- Menggunakan @Error supression lebih lambat 235% di banding tidak menggunakannya
- Menggunakan $_SERVER['REQUEST_TIME'] lebih cepat 59% di banding menggunakan time()
- Menggunakan min(array) lebih cepat 16% di banding menggunakan min(int, int)
- Menggunakan require_once() lebih cepat 24% di banding menggunakan include()
- Menggunakan require_once() sama cepat dengan menggunakan perintah include_once()
- Menggunakan include(relative path) lebih cepat 37% di banding menggunakan include(full path)
Regular Expressions
- Menggunakan str_replace() lebih cepat 40% di banding menggunakan preg_replace()
- Menggunakan ereg('regex') lebih cepat 17% di banding menggunakan preg_match('/regex/')
- Menggunakan preg_match('/regex/i') lebih cepat 68% di banding menggunakan eregi('regex')
============================================
MySQL Tips - Optimize How To
Source : romisatriawahono.net & supersoft.web.id
Untuk mengoptimalisasi server trafic tinggi, paling tidak ada 3titik. Apache, MySQL, PHP. Sebenarnya ada banyak titik yang harus dioptimalisasi, tapi sudah cukup signifikan membuat laju komputer serverdi trafic tinggi.
1. OPTIMISASI MySQL
Untuk server yg melaju di trafic tinggi sering yang down duluanselalu MySQL dan bukan Apachenya, jadi dari sini kita gerak.Optimalisasi MySQL biasanya hanya terpusat di file /etc/my.cnf. Yangcukup penting adalah setting variable max_connections, key_buffer dantable_cache. Setting variable lain selengkapnya seperti di bawah,beberapa nyontek dari tulisan yang ada di list referensi.
- max_connections = 500
- key_buffer = 256M
- max_allowed_packet = 1M
- table_cache = 512
- sort_buffer_size = 2M
- read_buffer_size = 2M
- myisam_sort_buffer_size = 64M
- thread_cache = 8
- query_cache_size = 512M
Sedangkan optimisasi table-table databasenya sendiri bisa menggunakan PhpMyadmin, khususnya fitur Optimize Table.
2. OPTIMISASI APACHE
Optimisasi lengkap ada di http://httpd.apache.org/docs/1.3/misc/perf-tuning.html.
3. Optimalisasi PHP
Optimalisasi PHP bisa juga tergantung dari script yg di develop.Dengan script yang simple bisa membuat kerja server cepat prosessnya.
========================================
Tambahan dari saya :
Untuk Optimisasi MySQL, saya menggunakan AppServ 2.5.9 (MySQL Database Version 5.0.45) di localhost dan nama filenya adalah my.ini yg terletak di AppServ\MySQL\my.ini.
Untuk Optimisasi PHP, jika kita melakukan query dengan data yang sudah mencapai jutaan, biasanya kita menemui masalah dengan executing time. Maksimum waktu eksekusi ini di PHP defaultnyaadalah 30 detik ( max_execution_time = 30). Untuk mengatasi masalah inidapat diganti max_execution_time = 60 (contoh maksimum waktu untukeksekusi adalah 60 detik) di php.ini, tetapi untuk masalahexecuting_time ini, saya lebih suka kita menambahkan script sbb :
<?php
set_time_limit(60);//set limit untuk melakukan query = 60 seconds
?>
Semoga bermanfaat..