Dalam pengembangan sistem skala besar, Cache tidak diragukan lagi sangat penting. Di dunia PHP, meskipun solusi cache yang dapat dipilih tidak sebanyak di Java, masih ada beberapa solusi yang matang, dari "pemrograman PHP tingkat lanjut" saya mempelajari hal berikut:
1. Pengoptimalan tingkat bahasa: PHP memiliki banyak API tingkat mesin. Melalui API ini, perilaku eksekusi mesin dapat diubah untuk mencapai tujuan pengoptimalan operasi. Diantaranya, hal yang paling bermanfaat untuk dilakukan adalah menyimpan hasil kompilasi dalam cache. Seperti yang kita ketahui bersama, setiap kali PHP dijalankan, ia harus melalui proses kode sumber -> kompilasi -> kode perantara -> eksekusi mesin. Untuk beberapa aplikasi besar, banyak waktu yang dihabiskan untuk kompilasi yang tidak berguna (bukan hanya PHP yang mengakses halaman) File harus melalui proses kompilasi. Ketika require() dan include() digunakan dalam skrip, beberapa file yang disertakan perlu dikompilasi). Dengan menyimpan hasil kompilasi dalam cache, kinerja sistem dapat ditingkatkan secara signifikan (sebanding dengan kompleksitas dan skala sistem).
Tiga alat utama di dunia PHP yang dapat mengimplementasikan cache kompilasi adalah:
Zend Accelerator—Cache kompiler komersial, sumber tertutup, dan berbiaya rendah yang diproduksi oleh Zend Industries
Akselerator ionCube—Cache kompiler komersial, sumber tertutup, namun gratis yang ditulis oleh Nick Lindridge dan didistribusikan oleh perusahaannya, ionCube
APC—Cache kompiler sumber terbuka dan gratis yang ditulis oleh Daniel Cowgill dan George Schlossnagle
Metode instalasi APC, APC disertakan dalam PECL, instalasi spesifiknya adalah sebagai berikut 190-823 190-802:
Setelahmenjalankan perintah
#pear install apc
, di php.ini Tambahkan:
extension = /path/to/apc.so
ke fileDengan cara ini, instalasi selesai. Saat php dijalankan di lain waktu, APC akan otomatis diaktifkan dan hasil kompilasi akan di-cache di shared memori. Saat dijalankan berikutnya, Dapatkan hasil pengeditan langsung dari memori dan jalankan tanpa kompilasi lagi.
Pertanyaan: Bisakah APC secara otomatis mengkompilasi ulang PHP yang telah berubah sejak kompilasi terakhir?
2. Optimasi kode PHP: Gunakan beberapa alat untuk menghasilkan kode perantara berkualitas tinggi setelah kompilasi. Detailnya adalah sebagai berikut:
Zend Optimizer adalah pengoptimal sumber tertutup tetapi tersedia secara gratis.
Akselerator ionCube berisi pengoptimal terintegrasi.
pengoptimal bukti konsep di PEAR.
Fungsi utama pengoptimal:
1. Menghapus kode yang tidak berguna, seperti kode mati yang tidak akan pernah dieksekusi.
2. Perhitungan konstanta, misalnya mengubah $detik_dalam_hari = 24*60*60 langsung menjadi $detik_dalam_hari = 86400;
3.
Fungsi pengoptimalan kode lainnya, seperti pernyataan ini:
$count++;
eksekusi Lebih cepat. Tentu saja, jika pernyataannya adalah $i = $count++; tidak ada optimasi yang akan dilakukan