php7性能提升的原因详解


Posted in PHP onOctober 13, 2019

为什么PHP7的性能可以提高这么多?

1. JIT
2. Zval的改变
3. 内部类型zend_string
4. PHP数组的变化(HashTable和Zend Array)
5. 函数调用机制(Function Calling Convention)
6. 通过宏定义和内联函数(inline),让编译器提前完成部分工作

为什么PHP7的在实际的业务性能提高才30%左右?

实际的业务不一定有很复杂的计算逻辑

实际的业务会用到Redis 和MYSQL,网络和IO的瓶颈 影响了PHP7的整体性能

HTTPS的性能问题 限制了PHP7的能力

Redis Proxy的问题

Redis Proxy目的是为了做Redis高可用&分布式缓存用的

经过性能测试,相对直接连接redis而已,用Proxy的性能损耗在10-15%左右(不同的业务 可能影响有比较大的差异)

那么Proxy是不是还有优化的空间的呢?

PHP和Redis长短链接的问题

PHP7 Redis长连接比短连接性能高10%左右(不同的业务差别比较大

PHP7性能提升原因总结:

1、存储变量的结构体变小,尽量使结构体里成员共用内存空间,减少引用,这样内存占用降低,变量的操作速度得到提升。

2、字符串结构体的改变,字符串信息和数据本身原来是分成两个独立内存块存放,php7尽量将它们存入同一块内存,提升了cpu缓存命中率。

3、数组结构的改变,数组元素和hash映射表在php5中会存入多个内存块,php7尽量将它们分配在同一块内存里,降低了内存占用、提升了cpu缓存命中率。

4、改进了函数的调用机制,通过对参数传递环节的优化,减少一些指令操作,提高了执行效率。

以上就是php7性能提升的原因的详细内容,更多请关注三水点靠木其它相关文章!

PHP 相关文章推荐
在PHP中利用XML技术构造远程服务(下)
Oct 09 PHP
PHP5 安装方法
Oct 09 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
php文件夹的创建与删除方法
Jan 24 PHP
php中 $$str 中 "$$" 的详解
Jul 06 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
Laravel框架自定义分页样式操作示例
Jan 26 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
一文搞懂php的垃圾回收机制
Jun 18 PHP
php抽象方法和普通方法的区别点总结
Oct 13 #PHP
php use和include区别总结
Oct 13 #PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 #PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 #PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 #PHP
laravel实现上传图片的两种方式小结
Oct 12 #PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 #PHP
You might like
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
Laravel5中contracts详解
2015/03/02 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
layui文件上传实现代码
2017/05/20 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python实现杨辉三角思路
2017/07/14 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
python利用opencv保存、播放视频
2020/11/02 Python
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
网吧收银员岗位职责
2013/12/14 职场文书
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
企业内控岗位的职责
2014/02/07 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
《假如》教学反思
2014/04/17 职场文书
老公保证书范文
2014/04/29 职场文书
法院信息化建设方案
2014/05/21 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
交通安全主题班会
2015/08/12 职场文书