博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP7性能提升的原因
阅读量:7054 次
发布时间:2019-06-28

本文共 1228 字,大约阅读时间需要 4 分钟。

hot3.png

随着7.x版本的公布,PHP的性能得到倍数级提升,这里尝试着整理一下其原因.

我们先看官方网站php.net上的7.0版本发布消息: http://php.net/archive/2015.php#id2015-12-03-1

其中提到的

PHP 7.0.0 comes with a new version of the Zend Engine, numerous improvements and new features such as

PHP 7.0.0 带来了一个新版本的Zend引擎,数不清的提升和新特性,如下:

  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6 //提升的性能: 比5.6版本快至两倍
  • Significantly reduced memory usage //显著减少了内存的使用
  • Abstract Syntax Tree //抽象语法树
  • Consistent 64-bit support //持续的64位支持
  • Improved Exception hierarchy //提升过的异常分层
  • Many fatal errors converted to Exceptions //许多致命的错误 转为了 异常
  • Secure random number generator //使随机数生成器安全
  • Removed old and unsupported SAPIs and extensions //移除了旧的未受支持的SAPI和扩展
  • The null coalescing operator (??) // 空合运算符(??)
  • Return and Scalar Type Declarations //Return(返回值)和Scalar(标量)类型的声明
  • Anonymous Classes //匿名类
  • Zero cost asserts //零成本的断言(?)

从上面可以看出7.0版本的一些大致的提升和新特性.那么我们再从7.0版本主要开发者鸟哥来介绍一下,到底是通过哪些方式来达到性能的提升的:

  直接看总结部分

到现在我们基本上把zval的变化概况介绍完毕, 抽象的来说, 其实在PHP7中的zval, 已经变成了一个值指针, 它要么保存着原始值, 要么保存着指向一个保存原始值的指针. 也就是说现在的zval相当于PHP5的时候的zval *. 只不过相比于zval *, 直接存储zval, 我们可以省掉一次指针解引用, 从而提高缓存友好性.

其实PHP7的性能, 我们并没有引入什么新的技术模式, 不过就是主要来自, 持续不懈的降低内存占用, 提高缓存友好性, 降低执行的指令数的这些原则而来的, 可以说PHP7的重构就是这三个原则.

转载于:https://my.oschina.net/u/3412738/blog/3009973

你可能感兴趣的文章
UIDatePicker和UIPickerView
查看>>
win7 蓝牙鼠标添加无反应原因一例
查看>>
工作中傻傻的错-2011/11
查看>>
eclipse 配置thrift
查看>>
myeclipse连接SQL 2012
查看>>
Linux核心-第二章 软件基础
查看>>
kubernates之删除pod
查看>>
我的友情链接
查看>>
单元测试之驱动模块和桩模块的作用和区别
查看>>
mysql使用binlog数据恢复
查看>>
UDP编程,发送图片或文件
查看>>
lnmp环境的×××
查看>>
《Effective Java》第八章:日常编程的一些小建议
查看>>
我的友情链接
查看>>
使用腾讯证书服务为Centos7+Apache申请颁发证书
查看>>
使用ant.design时遇到要格式化Table行的内容的小小解决方法
查看>>
Rsync用法 排除
查看>>
Java多线程编程:Callable、Future和FutureTask浅析
查看>>
我的友情链接
查看>>
mysql官方安装文档
查看>>