PHP7新特性

冷不防 2022-05-30 02:42 364阅读 0赞

php7已经发布了很久了,是php十年以来首次大改版。但是我相信大多数人都只闻其名,却不知道php7相比php5版本到底有了哪些改变。

众所周知,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主要做了两个方面的改变:

1.变量类型

以前php变量是弱类型的,例如

  1. function a($a1, $a2){
  2. }

现在可以指定返回的类型:

  1. function a($a1, $a2) : int {
  2. }

这对于提升计算能力有很大的帮助,因为以前在计算时需要不断判断数据类型,php7则不用了。

2.多异常捕捉

一个catch语句块现在可以通过管道字符(|)来实现多个异常的捕获。 这对于需要同时处理来自不同类的不同异常时很有用,如:

  1. <?php try { } catch (AException | BException $e) { }

不得不承认,php7版本发布是一次重大的改变,那么问题来了,现在已有的php系统要升级吗?

笔者觉得,如果你的系统一直跑的很溜,那么没有必要升级,因为php7最大的提升就是性能。如果你的系统一直在高速发展,用户量不断增加,那么即便现在没有性能问题,未来迟早也会有的。小编劝你趁早升级吧

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读

    相关 php7特性

    php7新特性 前言 php7出来有一端时间了,现在才开始接触到新特性,有点汗,以下只是记录平时开发用到的特性,并没有把全部的特性都一一写出,如有纰漏,不吝赐教,或

    相关 PHP7特性

    php7已经发布了很久了,是php十年以来首次大改版。但是我相信大多数人都只闻其名,却不知道php7相比php5版本到底有了哪些改变。 众所周知,php是IO密集型的语言,在

    相关 PHP7特性

    标量类型声明 标量类型声明 有两种模式:强制 (默认)模式和 严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (i

    相关 PHP7.3特性

    1 发布时间 06 Dec 2018 //官网PHP7.3新特性 2 更灵活的 Heredoc 和 Nowdoc 语法 //结束标记不再需要独立一

    相关 PHP7特性

    PHP 7使用新的Zend Engine 3.0将应用程序性能提高近两倍,内存消耗比PHP 5.6高出50%。它允许服务更多的并发用户,而不需要任何额外的硬件。PHP 7是考虑