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中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
laravel学习教程之关联模型
Jul 30 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 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
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript 函数使用说明
2010/04/07 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
仙境之桥观后感
2015/06/16 职场文书
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript