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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
火车头采集器3.0采集图文教程
Mar 17 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
php提示undefined index的几种解决方法
May 21 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
PHP实现多图片上传类实例
Jul 26 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP实现json_decode不转义中文的方法
May 20 PHP
php实现算术验证码功能
Dec 05 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 PHP
PHP基于ip2long实现IP转换整形
Dec 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
简单易用的计数器(数据库)
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python中的整除和取模实例
2020/06/03 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
工程造价与管理专业应届生求职信
2013/11/23 职场文书
竞聘上岗演讲
2014/05/19 职场文书
感谢信范文大全
2015/01/23 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis