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 相关文章推荐
第十三节--对象串行化
Nov 16 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
php错误级别的设置方法
Jun 17 PHP
php生成图形(Libchart)实例
Nov 06 PHP
php实现httpclient类示例
Apr 08 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
javascript实现微信分享
2014/12/23 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
python实现自动解数独小程序
2019/01/21 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
工程总经理工作职责
2013/12/09 职场文书
物流仓储计划书
2014/01/10 职场文书
岗位职责的构建方法
2014/02/01 职场文书
高一作文之乐趣
2019/11/21 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
python文件与路径操作神器 pathlib
2022/04/01 Python
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS