Zend, syarikat di belakang pasukan pembangunan PHP, membuka sumber terbuka produk pecutan PHP Zend Optimizer Projek baharu dihoskan pada Github dan nama projek ialah ZendOptimizerPlus. Hari ini kita akan bercakap tentang ZendOpcache.
Pengenalan
Zend Optimizer mempercepatkan pelaksanaan PHP dengan menyimpan cache dan mengoptimumkan opcode. Ia menyimpan pratetap dalam memori kongsi untuk meningkatkan prestasi PHP. Operasi ini menghapuskan proses membaca fail PHP dari cakera dan kemudian menyusunnya Selain itu, ia juga menyediakan sejumlah kecil mod pengoptimuman kod bait untuk menjadikan kod dilaksanakan dengan lebih pantas.
Kebolehgunaan
Versi semasa Zend Optimizer sesuai untuk PHP 5.2.*, 5.3.*, 5.4.* dan cawangan pembangunan PHP-5.5 boleh dibatalkan pada masa hadapan Sokongan .
Pemasangan
Muat turun kod sumber Zend Optimizer:
http://pecl.php.net/package/ZendOpcache
Pada masa ini, saya menggunakan versi beta 7.0.1 , nyahzip dan susun selepas memuat turun:
wget http://pecl.php.net/get/zendopcache-7.0.1.tgz tar xzf zendopcache-7.0.1.tgz cd zendopcache-7.0.1 phpize ./configure --with-php-config=/path_to_php_bin/php-config make make install
KonfigurasiEdit php.ini
zend_extension=/...full_path.../opcache.so #以下是开发组推荐配置 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1
Mulakan semula php cgi atau Apache anda.
Penjelasan terperinci tentang parameter konfigurasi
opcache.enable(Nilai lalai: 1)
Suis Zend Optimizer, kod apabila dihidupkan mati Tiada lagi pengoptimuman.
opcache.memory_consumption(Lalai: 64)
Zend Optimizer berkongsi saiz memori, berapa banyak prakompilasi boleh disimpan dalam jumlah kod PHP (unit: MB).
opcache.interned_strings_buffer(Lalai: 4)
Perkadaran rentetan yang dimasukkan dalam Zend Optimizer Jumlah memori . (Unit: MB)
opcache.max_accelerated_files(Lalai: 2000)
Bilangan kunci dalam jadual cincang Zend Optimizer Nilai maksimum (fail skrip harus sepadan dengan kunci, jadi ia mestilah bilangan maksimum fail yang dibenarkan untuk dicache). , 65407 , nombor pertama dalam 130987} yang lebih besar daripada nilai yang ditetapkan Julat tetapan nilai: 200 – 100000
opcache.max_wasted_percentage(nilai lalai: 5. )
Apabila memori "terbuang" mencapai peratusan yang sepadan dengan nilai ini, jadual mulakan semula akan dimulakan.
opcache.use_cwd( nilai lalai: 1 )
Apabila arahan ini dihidupkan, Zend Optimizer secara automatik akan menambahkan nama direktori kerja semasa pada kunci skrip untuk menghapuskan konflik penamaan nilai kunci antara fail dengan nama yang sama arahan ini akan meningkatkan prestasi, tetapi ia akan Menyebabkan kerosakan pada aplikasi sedia ada.
opcache.validate_timestamps(Lalai: 1)
Apabila dilumpuhkan, anda mesti menetapkan semula Zend Optimizer secara manual atau memulakan semula pelayan web agar perubahan sistem fail berkuat kuasa Kekerapan semakan dikawal oleh arahan "opcache.revalidate_freq".
opcache. .revalidate_freq( Nilai lalai: 2)
Berapa kerap (dalam saat) untuk menyemak cap masa fail untuk menukar peruntukan memori kongsi "1" bermaksud menyemak sekali setiap saat, tetapi sekali setiap permintaan. "0" bermaksud menyemak Sentiasa mengesahkan.
opcache.revalidate_path(Lalai: 0)
Benarkan atau lumpuhkan pengoptimuman carian fail dalam include_path . Jika carian fail dilumpuhkan dan fail yang dicache boleh ditemui dalam include_path yang sama, carian fail tidak akan diteruskan Oleh itu, jika terdapat fail dengan nama yang sama di tempat lain dalam include_path, ia tidak akan ditemui Jika pengoptimuman ini ia menjejaskan aplikasi anda, ia harus dibenarkan untuk mencari Secara lalai, arahan itu dilumpuhkan, yang bermaksud bahawa pengoptimuman adalah aktif
opcache .save_comments(Lalai. : 1)
Jika dilumpuhkan, semua ulasan dokumentasi dilucutkan daripada kod untuk mengurangkan saiz kod yang dioptimumkan. .
opcache.load_comments(Lalai: 1)
Jika dilumpuhkan, ulasan dokumentasi PHP tidak akan dibaca daripada SHM (memori dikongsi). Walaupun "komen dokumen" masih akan disimpan (save_comments=1), ulasan yang tidak digunakan itu tidak perlu dibaca oleh aplikasi.
opcache.fast_shutdown (Lalai: 0)
Jika didayakan, baris gilir penutupan pantas digunakan untuk mempercepatkan kod Barisan gilir penutupan pantas tidak dikeluarkan setiap blok yang diperuntukkan, sebaliknya membiarkan pengurus memori Zend Engine melakukan kerja.
opcache.enable_file_override(lalai: 0)
Ciri pengoptimuman yang membenarkan mengatasi kewujudan fail (file_exists, dsb.).
opcache.optimization_level (Lalai: 0xffffffff)
Bitmask di mana setiap bit membenarkan atau melumpuhkan laluan cache yang sepadan
opcache.inherited_hack(lalai: 1)
Mendayakan Hack ini boleh menyelesaikan sementara ralat "tidak boleh mengisytiharkan semula kelas" menyimpan Zend Optimizer di mana opcode DECLARE_CLASS menggunakan warisan (ini adalah satu-satunya opcode yang boleh dilaksanakan oleh PHP, tetapi ia juga mungkin disebabkan oleh pengoptimuman. kelas tidak ditemui dan tidak boleh dilaksanakan). Apabila fail dibaca, Pengoptimum akan cuba mengikat kelas yang diwarisi melalui persekitaran semasa Masalahnya ialah opcode DECLARE_CLASS mungkin tidak diperlukan oleh skrip semasa skrip memerlukan opcode untuk sekurang-kurangnya melengkapkan operasi definisi kelas, maka ia tidak akan dilaksanakan secara lalai, yang bermaksud bahawa pengoptimuman adalah berkesan Ini tidak lagi diperlukan dalam PHP 5.3 dan tetapan ini tidak akan berkuat kuasa.
opcache.dups_fix(Lalai: 0)
Mendayakan Hack ini boleh menyelesaikan sementara "tidak boleh mengisytiharkan semula kelas" ralat.
opcache.blacklist_filename(Lalai: Tiada)
Lokasi fail senarai hitam Zend Optimizer.
Senarai hitam Zend Optimizer ialah fail teks yang mengandungi nama fail yang tidak boleh dipercepatkan Format fail ialah satu nama fail setiap baris Nama fail mestilah laluan lengkap atau awalan fail (seperti: /var/www/x Semua fail atau direktori. bermula dengan 'x' dalam fail /var/www dan direktori disekat). Fail yang perlu disekat biasanya memenuhi salah satu daripada tiga sebab berikut:
1) Direktori mengandungi kod yang dijana secara automatik, seperti Smarty atau ZFW cache.
2) Kod tidak berfungsi dengan baik semasa melaksanakan pecutan, sekali gus melambatkan penilaian masa kompilasi.
3) Kod tersebut mencetuskan Pepijat Zend Optimizer
opcache.max_file_size(lalai: 0)
Skrin caching fail besar mengikut saiz fail Secara lalai semua fail akan dicache.
. opcache.consistency_checks(nilai lalai: 0)
Semak pengesahan cache setiap permintaan N Nilai lalai 0 bermakna semakan dilumpuhkan Disebabkan oleh pengiraan nilai semakan Kerosakan prestasi, ini arahan harus didayakan semasa pembangunan dan penyahpepijatan
opcache.force_restart_timeout(lalai: 180)
Dari Selepas cache tidak diakses, bagaimana lama untuk menunggu (dalam saat) sebelum menjadualkan semula Zend Optimizer bergantung pada arahan ini untuk menentukan sama ada proses mungkin menghadapi masalah semasa pemprosesan Selepas tempoh masa ini (masa menunggu), diandaikan bahawa Zend Optimizer berlaku masalah, dan bermula proses membunuh yang masih menahan kunci pencegahan mulakan semula. Apabila ini berlaku, ralat "kunci terbunuh" akan dilog masuk ke log Apache jika tahap log adalah tahap 3 atau lebih tinggi.
opcache.error_log(Lalai: Tiada)
Nama fail log ralat Zend Optimizer Biarkan kosong untuk menggunakan output ralat standard (stderr).
opcache.log_verbosity_levelMesej ralat terus ke log pelayan web Lalai hanya ralat maut (tahap 0) ) atau ralat (tahap 1) akan direkodkan. Anda juga boleh membenarkan amaran (tahap 2), mesej gesaan (tahap 3) atau mesej nyahpepijat (tahap 4) direkodkan
opcache.preferred_memory_modelUjung belakang pilihan untuk perkongsian memori biarkan ia kosong untuk membolehkan sistem memilih.
opcache.protect_memoryMenghalang memori dikongsi daripada ditulis secara tidak sengaja semasa pelaksanaan skrip, hanya untuk penyahpepijatan dalaman.
opcache.mmap_basePangkalan pemetaan segmen memori kongsi (Windows sahaja). >Pembelajaran yang disyorkan:
tutorial video phpAtas ialah kandungan terperinci Bagaimana untuk memasang dan mengkonfigurasi ZendOpcache. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!