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面向对象的使用教程 简单数据库连接
Nov 25 PHP
php+mysql 实现身份验证代码
Mar 24 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php无限遍历目录示例
Feb 21 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
php往mysql中批量插入数据实例教程
Dec 12 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
JS实现页面打印功能
2017/03/16 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
python中使用序列的方法
2015/08/03 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python字符串处理实现单词反转
2017/06/14 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
wxPython实现整点报时
2019/11/18 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
电脑教师的自我评价
2013/12/18 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
早会主持词
2014/03/17 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
事业单位鉴定材料
2014/05/25 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
网络研修心得体会
2016/01/08 职场文书
在python中读取和写入CSV文件详情
2022/06/28 Python