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不用正则采集速度探究总结
Mar 24 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php mssql 时间格式问题
Jan 13 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
php简单统计在线人数的方法
May 10 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
dojo 之基础篇
2007/03/24 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
新闻专业应届生求职信
2013/10/31 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
介绍信格式样本
2015/05/05 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
Win11快速关闭所有广告推荐
2022/04/19 数码科技
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server