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 相关文章推荐
PHP5 面向对象程序设计
Feb 13 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
php rsa加密解密使用详解
Jan 14 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
php强制更新图片缓存的方法
Feb 11 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
Aug 03 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
修复ie8&chrome下window的resize事件多次执行
2011/10/20 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
python 正确保留多位小数的实例
2018/07/16 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
python读取文本中的坐标方法
2018/10/14 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Django中使用Celery的方法示例
2018/11/29 Python
python根据url地址下载小文件的实例
2018/12/18 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python实现的汉诺塔算法示例
2019/10/23 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
庆六一文艺汇演活动方案
2014/08/26 职场文书
庆国庆活动总结
2014/08/28 职场文书
感谢信格式范文
2015/01/22 职场文书
入党群众意见范文
2015/06/02 职场文书
听证会主持词
2015/07/03 职场文书
《假如》教学反思
2016/02/17 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
Python PIL按比例裁剪图片
2022/05/11 Python