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 相关文章推荐
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
php使用curl存储cookie的示例
Mar 31 PHP
php生成短域名函数
Mar 23 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 PHP
laravel数据库查询结果自动转数组修改实例
Feb 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
js实现简易ATM功能
2020/10/27 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
总经理助理岗位职责
2013/11/08 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
财务出纳岗位职责
2014/02/03 职场文书
大四自我鉴定
2014/02/08 职场文书
临床专业自荐信
2014/06/22 职场文书
课外活动总结范文
2014/07/09 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
教师节联欢会主持词
2015/07/04 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS