PHP新特性之字节码缓存和内置服务器

Zend OPcache

1).从PHP5.0开始,内置了字节码缓存功能,名为Zend OPcache。由于PHP是解释性语言,PHP解释器执行PHP脚本时会解析PHP脚本代码,生成一系列的Zend操做码,而后执行字节码,每次的HTTP请求都是这样,会消耗不少资源,使用字节码缓存能够缓存预先编译的字节码,减小响应时间,下降系统资源的压力。php

启用Zend OPcache

默认状况之下,Zend OPcache是没有启动的。若是是本身编译PHP,执行的时候命令必须包含如下选项:前端

--enable-opcache复制代码

编译好PHP以后,还必须在php.ini文件中指定Zend OPcache的扩展路径,以下所示:git

zend_extension=/path/to/opcache.so复制代码

PHP编译成功以后会当即显示Zend OPcache扩展的文件路径。可使用下面的命令找到这个PHP扩展的路径github

php-config --extension-dir复制代码

而后使用下面的代码能够确认该扩展运行正常web

<?php
phpinfo();复制代码
配置Zend OPcache

推荐配置shell

opcache.validate_timestamps = 1 //在生产环境中设为'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1复制代码

能够访问PHP官方网站查看详细设置。api

使用Zend OPcache

1).生产环境能够设置opcache.validate_timestamps=0。在开发环境中须要设置为1缓存

内置的HTTP服务器

1).启动php -S localhost:4000 -c app/config/php.ini
2).不支持.htaccess文件。意味着不支持控制器模式。前端控制器用来转发全部的HTTP请求,须要经过.htaccess文件或重写规则实现。
3).可使用路由器脚本实现以上功能。可是只支持少许的URL重写规则php -S localhost:8000 router.php
4).判断使用的是哪一个服务器:bash

<?php
if (php_sapi_name() === 'cli-server') {
    //php内置服务器
} else {
    // 其余Web服务器
}复制代码

专题系列

PHP专题系列目录地址:github.com/xx19941215/…
PHP专题系列预计写二十篇左右,主要总结咱们平常PHP开发中容易忽略的基础知识和现代PHP开发中关于规范、部署、优化的一些实战性建议,同时还有对Javascript语言特色的深刻研究。服务器

相关文章
相关标签/搜索