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实现小型站点广告管理(修正版)
Oct 09 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
php知道与问问的采集插件代码
Oct 12 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
smarty简单应用实例
Nov 03 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中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
php编程每天必学之验证码
2016/03/03 PHP
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
vue自定义指令实现方法详解
2019/02/11 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python实现的config文件读写功能示例
2019/09/24 Python
python元组的概念知识点
2019/11/19 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
销售员态度差检讨书
2014/10/26 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python