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中使用灵巧的体系结构
Oct 09 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
在PHP中使用模板的方法
May 24 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
PHP使用ob_start生成html页面的方法
Nov 07 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
Jun 12 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
PHP经典实用正则表达式小结
May 04 PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 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
ThinkPHP中的三大自动简介
2014/08/22 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
cookie的secure属性详解
2015/04/08 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
vue-loader教程介绍
2017/06/14 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
python和flask中返回JSON数据的方法
2018/03/26 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
python实现多层感知器
2019/01/18 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python安装gdal的两种方法
2019/10/29 Python
python实现程序重启和系统重启方式
2020/04/16 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
员工考核管理制度
2014/02/02 职场文书
中考标语大全
2014/06/05 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python