PHP7为什么比PHP5快?

Posted 离岸少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP7为什么比PHP5快?相关的知识,希望对你有一定的参考价值。

性能提升的原因?
1、存储变量的结构体变小,尽量使结构体里成员共用内存空间,减少引用,这样内存占用降低,变量的操作速度得到提升。

2、字符串结构体的改变,字符串信息和数据本身原来是分成两个独立内存块存放,php7尽量将它们存入同一块内存,提升了cpu缓存命中率。 

3、数组结构的改变,数组元素和hash映射表在php5中会存入多个内存块,php7尽量将它们分配在同一块内存里,降低了内存占用、提升了cpu缓存命中率。

4、改进了函数的调用机制,通过对参数传递环节的优化,减少一些指令操作,提高了执行效率。

 

为什么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的能力

以上是关于PHP7为什么比PHP5快?的主要内容,如果未能解决你的问题,请参考以下文章

PHP5.6 over,关于PHP7你必须知道的几件事

php5.6 over,关于php7你必须知道的几件事

PHP7有没有你们说的那么牛逼(php7.1 和 php5.6 横向对比) 转载

[PHP] PHP7比PHP5数组优化的点

PHP5.6 和PHP7.0区别

PHPm-code1