PHPシリーズの現代の新機能(6) - ZendのOpcache

1.概要

     新機能PHPバイトコードキャッシュはありませんが、多くの個別の拡張があるなどAPC、eAcceleratorのとXache、として、達成することができますが、今のように、これらの拡張機能はPHP 5.5.0から始まり、PHPのコアに統合されていない、PHPがビルトインバイトZendのOpcacheと呼ばれるコードのキャッシュ機能。

     私たちは始める前に、のは、どのようなバイトコードキャッシュ、およびどのようなバイトコードキャッシュはいの役割を見てみましょう。

     :我々はすべて知っているように、PHPはインタプリタ言語であるPHPスクリプトを実行すると、PHPスクリプトコードを解析する際に、Zendの上に構築された仮想マシン、PHPインタプリタは、コードはZendのPHPオペコード(オペコードのシリーズにコンパイルされhttp://php.net/手動/ ZH / internals2.opcodes.php、各オペコードはそうバイトコードと呼ばれる、1バイト長であるため、バイトコードを直接Zendの仮想マシンを実行することができる)、次いでバイトコードを実行します。すべてのHTTP要求はより多くのリソースを消費し、解析、コンパイルしてPHPスクリプトを実行し続けなければならない場合には、このような各要求のためのPHPファイルは、それは、多くのリソースを消費します。PHPのソースコードを変更しない場合は、対応するバイトコードが変更されていない、毎回オペコードを再生成する必要がない明確で、ユビキタスWebアプリケーションのキャッシュメカニズムと組み合わせて、我々は、キャッシュされたオペコードの第一世代を置くので、次のことができますキャッシュから直接取ら回、それがすぐにありますか?以下は、前と後に有効フローチャートオペコードのキャッシングです。

 

       次の要求のPHPスクリプト、PHPインタプリタは常に、解析され、コンパイルされたPHPコードを読んでいないように、バイトコードキャッシュは、プリコンパイルされたPHPバイトコードを格納することができた場合、メモリから直接読み取るプリコンパイルされた単語セクションコード、その後、すぐに実行には、これは非常に、多くの時間を節約するアプリケーションのパフォーマンスを向上させることができます。

2、ZendのOpcacheを有効にします

注:あなたは、Windowsの開発環境を使用している、または使用した場合brewapt-get、そのようなPHPのインストールなどのコマンドは、コンパイル手順をスキップすることができます。

       デフォルトでは、ZendのOpcache開いていない、我々は、コンパイル時に使用する必要がある--enable-opcacheのZend Opcacheを有効にするには、指定されました。

PHPをコンパイルした後も、する必要がphp.iniOpcache拡張パスを指定します。

    代替としてzend_extension = /パス/に/ opcache.so

       一般的なPHPのZend Opcache拡張パスでコンパイルが成功した後に表示されますが、あなたは覚えていないことができれば、あなたはPHPのエクステンションディレクトリを検索するには、次のコマンドを使用することができます。

    --extension-のphp-config設定ディレクトリ

メモ:Xdebugをを使用している場合は、必要なphp.iniZendのOpcacheをロードするために、その後はXdebugをロードします。

       更新php.ini再起動後やPHPプロセスが成功有効にするかどうかを確認:

      

3、ZendのOpcacheを設定

        ZendのOpcache有効も必要php.ini次の基準のような構成の一例であり、構成のZend Opcacheました:

    opcache.validate_timestamps=1             //生产环境中配置为0
    opcache.revalidate_freq=0                 //检查脚本时间戳是否有更新时间
    opcache.memory_consumption=64             //Opcache的共享内存大小,以M为单位
    opcache.interned_strings_buffer=16        //用来存储临时字符串的内存大小,以M为单位
    opcache.max_accelerated_files=4000        //Opcache哈希表可以存储的脚本文件数量上限
    opcache.fast_shutdown=1                   //使用快速停止续发事件

注:后续我们还会进一步介绍Zend Opcache的配置,PHP官网中列出了Zend Opcache的全部设置:http://ua2.php.net/manual/zh/opcache.configuration.php

4、使用Zend Opcache

         Zend Opcache使用起来很简单,因为启用之后它会自动运行,Zend Opcache会自动在内存中缓存预先编译好的PHP字节码,如果缓存了某个文件的字节码,就执行对应的字节码。

         如果php.ini中配置了opcache.validate_timestamps值为0,需要小心,因为Zend Opcache将不能觉察PHP脚本的变化,必须手动清空Zend OPcache缓存的字节码,才能让它发现PHP文件的变动。这个配置适合在生产环境中设置为0,但在开发环境会带来不便,我们可以在开发环境中这样配置启用自动验证缓存功能:

    opcache.validate_timestamps=1
    opcache.revalidate_freq=0

 

おすすめ

転載: www.cnblogs.com/mzhaox/p/11222026.html