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


Posted in PHP onAugust 11, 2017

Zend OPcache

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

启用Zend OPcache

默认情况之下,Zend OPcache是没有启动的。如果是自己编译PHP,执行的时候命令必须包含以下选项:

--enable-opcache

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

zend_extension=/path/to/opcache.so

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

php-config --extension-dir

然后使用下面的代码可以确认该扩展运行正常

<?php
phpinfo();

配置Zend OPcache

推荐配置

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官方网站查看详细设置。

使用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).判断使用的是哪个服务器:

<?php
if (php_sapi_name() === 'cli-server') {
 //php内置服务器
} else {
 // 其他Web服务器
}

专题系列

PHP专题系列目录地址: github.com/xx19941215/…

PHP专题系列预计写二十篇左右,主要总结我们日常PHP开发中容易忽略的基础知识和现代PHP开发中关于规范、部署、优化的一些实战性建议,同时还有对Javascript语言特点的深入研究。

总结

以上所述是小编给大家介绍的PHP新特性之字节码缓存和内置服务器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP生成HTML静态页面实例代码
Aug 31 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
PHP chr()函数讲解
Feb 11 PHP
php生成静态页面并实现预览功能
Jun 27 PHP
php7性能提升的原因详解
Oct 13 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 #PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 #PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 #PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 #PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 #PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 #PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 #PHP
You might like
PHP入门速成教程
2007/03/19 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
详解Python中的array数组模块相关使用
2016/07/05 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python中一行和多行import模块问题
2018/04/01 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
公司外出活动方案
2014/08/14 职场文书
晚会开幕词
2015/01/28 职场文书
微观世界观后感
2015/06/10 职场文书
主婚人致辞精选
2015/07/28 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python