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 8小时时间差的解决方法小结
Dec 22 PHP
PHP 图像尺寸调整代码
May 26 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
PHP内置加密函数详解
Nov 20 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP实现与java 通信的插件使用教程
Aug 11 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调用三种数据库的方法(3)
2006/10/09 PHP
PHP 编程安全性小结
2010/01/08 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
JS中的三个循环小结
2017/06/20 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
python实现两个文件合并功能
2018/04/01 Python
python遍历小写英文字母的方法
2019/01/02 Python
wxPython多个窗口的基本结构
2019/11/19 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
Linux文件系统类型
2012/09/16 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
2014年党务公开方案
2014/05/08 职场文书
网络营销策划方案
2014/06/04 职场文书
十八大标语口号
2014/10/09 职场文书
满月酒邀请函
2015/01/30 职场文书
企业财务管理制度范本
2015/08/04 职场文书
2016教师国培研修感言
2015/12/08 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书