php是IO密集型的语言,在一般的网站系统中,它的主要瓶颈在于mysql中,但相比于c语言,c++等,它的计算能力弱了几十倍。
性能问题正是php最大的瓶颈。
说到这里,你应该已经知道php7做出了哪些改变,没错,php7最大的改变就是优化了它的性能。先来看一组数据:
很明显,在使用了php7之后,wordpress的qps提升了两倍,这绝对是一个质的飞跃。
那么php7是如何做到性能优化的呢?
1. 以前php在创建变量时,是动态的从堆中创建,现在则是直接从栈中创建变量,速度更快。
2. php开发中,最常用的就是array(),以前在通过key查找时,需要做一个hash计算,php7则直接存储了hash值,因此无需再做多余的计算,使得查找速度更快。
3. php存储的数据结构做了改变,以前每增加一个变量就要申请一次内存,每一个变量在内存中分布不连续,现在一次申请即可,变量分布比较集中,有效提高命中率。
4. 将call_user_function ,strlen, define, is_int/array/string这四个常用函数变为php OpCode(Zend虚拟机中的指令),速度更快。
5. 排序算法改进等
除了性能之外,php7主要做了两个方面的改变:
变量类型
以前php变量是弱类型的,例如
function a($a1, $a2){ …..}
现在可以指定返回的类型:
function a($a1, $a2) : int { …..}
这对于提升计算能力有很大的帮助,因为以前在计算时需要不断判断数据类型,php7则不用了。
2. 异常捕捉
以前php异常会使程序终止,现在可以使用try/catch语句捕捉异常
ps:
php7 性能提升了很多,比php5.6 性能至少提升3倍.
所以有必要升级一下.
转载请注明:苏demo的别样人生 » php7 到底带来了哪些变化?