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+mysql保存和输出文件
Oct 09 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP发送AT指令实例代码
May 26 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
PHP静态成员变量
Feb 14 PHP
PHP实现添加购物车功能
Mar 06 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP反射学习入门示例
Jun 14 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
10 个经典PHP函数
2013/10/17 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
AUC计算方法与Python实现代码
2020/02/28 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
什么是设计模式
2012/06/17 面试题
大学生工作推荐信范文
2013/12/02 职场文书
结婚典礼证婚词
2014/01/11 职场文书
cf战队收人口号
2014/06/21 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书