php7性能提升的原因详解

作者:V 时间:2024-05-03 15:34:19 

为什么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,性能提升
0
投稿

猜你喜欢

  • python3爬虫获取html内容及各属性值的方法

    2021-08-23 02:37:33
  • Java连接数据库oracle中文乱码解决方案

    2024-01-19 02:48:10
  • SQL语句的执行原理分析

    2024-01-15 03:17:59
  • Python调用服务接口的实例

    2021-06-04 18:22:06
  • python 获取星期字符串的实例

    2022-08-17 19:14:37
  • pandas DataFrame 警告(SettingWithCopyWarning)的解决

    2023-08-20 07:45:31
  • Win7彻底卸载Oracle 11g图文步骤(靠谱)

    2024-01-22 22:22:05
  • Pandas分组与排序的实现

    2022-11-27 14:13:18
  • 详解Go语言中的Slice链式操作

    2024-05-22 10:29:05
  • Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记

    2023-08-17 10:58:20
  • python使用webdriver爬取微信公众号

    2022-10-06 02:13:30
  • 用python发送微信消息

    2022-04-14 07:16:55
  • SQL语句中EXISTS的详细用法大全

    2024-01-22 11:09:11
  • Python 异常处理Ⅳ过程图解

    2023-06-28 16:05:53
  • golang struct 实现 interface的方法

    2024-05-05 09:28:37
  • python获取指定网页上所有超链接的方法

    2023-07-18 11:50:20
  • matplotlib基础绘图命令之errorbar的使用

    2022-03-10 23:20:38
  • python练习之循环控制语句 break 与 continue

    2022-04-15 12:31:20
  • Python写出新冠状病毒确诊人数地图的方法

    2022-09-28 06:15:13
  • Python3爬虫里关于代理的设置总结

    2021-05-05 23:58:12
  • asp之家 网络编程 m.aspxhome.com