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也可以?成Shell Script
Oct 09 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP fclose函数用法总结
Feb 15 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 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实现httpclient类示例
2014/04/08 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
解放web程序员的输入验证
2006/10/06 Javascript
如何实现动态删除javascript函数
2007/05/27 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
python实现dict版图遍历示例
2014/02/19 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
python处理RSTP视频流过程解析
2020/01/11 Python
详解python with 上下文管理器
2020/09/02 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
班组长安全生产职责
2013/12/16 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL