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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
php的计数器程序
Oct 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
各种快递查询--Api接口
Apr 26 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
Nov 15 PHP
PHP实现转盘抽奖算法分享
Apr 15 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 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+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
angularJS开发注意事项
2018/05/26 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
python基于ID3思想的决策树
2018/01/03 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
毕业研究生的自我鉴定
2013/11/30 职场文书
保护野生动物倡议书
2014/05/16 职场文书
煤矿安全协议书
2014/08/20 职场文书
房产分割协议书范文
2014/11/21 职场文书
房产证明范本
2015/06/19 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers