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 stripslashes和addslashes的区别
Feb 03 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
PHP date函数常用时间处理方法
May 11 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
Yii 实现数据加密和解密
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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP数据库操作面向对象的优点
2006/10/09 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jsonp原理及使用
2013/10/28 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
"引用"与多态的关系
2013/02/01 面试题
应届毕业生求职信范文
2013/12/18 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
司法助理专业自荐书
2014/06/13 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
golang特有程序结构入门教程
2021/06/02 Python
MySQL如何解决幻读问题
2021/08/07 MySQL
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python