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对象类型判断
Aug 27 PHP
PHP 简单日历实现代码
Oct 28 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php连接oracle数据库的核心步骤
May 26 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
php实现微信发红包功能
Jul 13 PHP
Laravel find in set排序实例
Oct 09 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中str_replace函数使用小结
2008/10/11 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
js玩一玩WSH吧
2007/02/23 Javascript
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
python实现图书管理系统
2018/03/12 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
python中time包实例详解
2021/02/02 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
销售高级职员求职信
2013/10/29 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript