OPcache: Caching Kod Bait
Dayakan dan laraskan OPcache untuk menghapuskan lebihan penyusunan skrip berulang.
OPcache: Caching Kod Bait ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Cara PHP Biasanya Berfungsi
Tanpa OPcache, setiap permintaan menyebabkan PHP melakukan perkara berikut: membaca fail .php daripada cakera, menghuraikannya menjadi AST, menyusunnya menjadi kod operasi (kod bait), kemudian melaksanakan kod operasi tersebut.
Fungsi OPcache
OPcache menyimpan kod operasi yang telah disusun dalam memori dikongsi. Bagi permintaan seterusnya, PHP melangkau langkah penghuraian dan penyusunan — lalu terus kepada pelaksanaan.
Kesan terhadap Prestasi
OPcache biasanya memberikan peningkatan daya pemprosesan sebanyak 2–5 kali untuk aplikasi PHP tanpa memerlukan perubahan kod.
Mendayakan OPcache
OPcache disertakan bersama PHP 5.5+ dan didayakan secara lalai dalam banyak edaran. Semak dengan php -m | grep -i opcache.
# php.ini:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0Tetapan Utama OPcache
Laraskan tetapan ini untuk produksi:
# php.ini:
opcache.memory_consumption=256 ; MB of shared memory
opcache.interned_strings_buffer=16 ; MB for interned strings
opcache.max_accelerated_files=20000 ; max scripts to cache
opcache.validate_timestamps=0 ; disable for production!
opcache.revalidate_freq=0 ; how often to check timestampsvalidate_timestamps=0
Dalam produksi, tetapkan validate_timestamps=0 untuk melumpuhkan pemeriksaan sistem fail pada setiap permintaan — PHP akan sentiasa menggunakan kod operasi yang dicache. Selepas penerapan, tetapkan semula cache.
Menetapkan Semula OPcache
Kosongkan cache selepas menerapkan kod baharu.
<?php
opcache_reset(); // from a PHP script
// Or restart PHP-FPM:
$ kill -USR2 $(cat /run/php-fpm.pid)opcache_get_status()
Jalankan pertanyaan terhadap statistik OPcache semasa masa jalan untuk memantau kadar capaian dan penggunaan memori.
<?php
$status = opcache_get_status();
echo "Hit rate: ".$status["opcache_statistics"]["opcache_hit_rate"]."%";Pemuatan Awal (PHP 7.4+)
Pemuatan awal OPcache memuatkan fail rangka kerja ke dalam memori dikongsi ketika pelayan dimulakan — lalu menghapuskan walaupun overhed penyusunan permintaan pertama untuk kelas teras.
# php.ini:
opcache.preload=/srv/app/preload.php
opcache.preload_user=www-dataPenyusunan JIT (PHP 8.0+)
PHP 8 memperkenalkan penyusunan JIT (tepat pada masanya) di atas OPcache, yang menukar kod operasi kepada kod mesin natif. Manfaatnya paling besar untuk tugas intensif CPU dan kecil untuk aplikasi web biasa yang terikat pada input/output.
# php.ini:
opcache.jit_buffer_size=100M
opcache.jit=1255Kelas Tidak Berubah
OPcache boleh berkongsi rentetan intern dan takrif kelas tidak berubah merentasi proses pekerja — lalu mengurangkan penggunaan memori bagi setiap proses.
Ringkasan
Dayakan OPcache dalam produksi dengan validate_timestamps=0. Kosongkan cache selepas penerapan menggunakan opcache_reset() atau mulakan semula PHP-FPM. Pantau kadar capaian dengan opcache_get_status().
Semakan Ringkas
Tetapan php.ini yang manakah harus bernilai 0 dalam produksi untuk prestasi OPcache maksimum?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “OPcache: Caching Kod Bait” percuma?
Ya — teks penuh “OPcache: Caching Kod Bait” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “OPcache: Caching Kod Bait”?
Dayakan dan laraskan OPcache untuk menghapuskan lebihan penyusunan skrip berulang. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “OPcache: Caching Kod Bait” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membuat Profil PHP dengan Xdebug
- OPcache: Caching Kod Bait
- Mengoptimumkan Pertanyaan Pangkalan Data
- Pengurusan Memori dan Petua Prestasi