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 相关文章推荐
一个显示天气预报的程序
Oct 09 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
PHP基础陷阱题(变量赋值)
Sep 12 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
php生成二维码
Aug 10 PHP
php自定义分页类完整实例
Dec 25 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 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中extract()函数的定义和用法
2012/08/17 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
AngularJs每天学习之总体介绍
2017/08/07 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python中用Spark模块的使用教程
2015/04/13 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
详解python之协程gevent模块
2018/06/14 Python
Django框架封装外部函数示例
2019/05/28 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
关于python中remove的一些坑小结
2021/01/04 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
一年级学生期末评语
2014/04/21 职场文书
高中学生期末评语
2014/04/25 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
八年级语文教学反思
2016/03/03 职场文书