PHP7简介
目录:
- 关于PHP7的相关资源
- PHP7简单的介绍
- PHP7性能压测
关于PHP7的相关资源
进入wiki.php.net搜索phpng即可找到很多相关的介绍内容.
PHP7简单的介绍
PHPNG即PHP7,其中的NG是Next Generation下一代的意思.
这里有个关于php7内容的讨论页面,介绍了php7一些可能的特性.
1.OpCache integration(整合opcache),已经做了,是一个zend扩展,就叫做opcahce,在php.ini中配置好就可以使用了.
2.Improved and actual 64bit support(64位的支持)
3.Unicode support(unicode编码支持)
4.internals API Cleanup(核心API的整改)
5.Warning free code(提示无用代码),PHP目前是没有做代码优化的,做代码优化的第一个目标就是提示无用的代码,比如一个条件分支永远进不了,那么里面的代码肯定是无用的,这个在java的编辑器中就有提示的.
6.Improve OPcodes, compilation and runtime(优化opcode,编译与运行时),整体来说就是优化zend引擎对脚本的解释执行.
7.JIT compiler(即时编译支持)
8.HTTP2 support(HTTP2协议的支持)
9.Native Annotation Support(原生注释的支持),就是在方法前面加一些标签,然后就能实现某种功能,比如java中的@inject@test这些.
10.Getter/Setter,从RFC看到语法跟C#的比较类似.
11.Scalar type hinting and return typing,函数参数与返回值支持限定类型,这个已经在做了,但是可以配置是否使用.
PHP7性能压测
性能肯定是比较出来的,PHP7比较php5在某些压测数据下提交了3以上.而最多的比较应该是php7 vs hhvm,中国用php两大阵营应该就是百度贴吧与新浪微博了,贴吧直接转成hhvm了.这里贴出鸟哥的压测数据,结果显示性能基本差不多,php7在这个条件下还有一点小优.
结论,
- PHP7 – 258.22 QPS
- HHVM – 230.97 QPS
考虑到HHVM的运维复杂度, 他是多线程模型, 这就代表着如果一个线程导致crash了, 那么整个服务就挂了, 并且它不会自动重启
另外它采用JIT, 那么意味着, 重启以后要预热, 没有预热的情况下, 性能较为糟糕
并且多线程模型调试困难, 这对于追求稳定来说的Web服务来说, 是非常不适合的.
那么, PHP7性能提升以后, 我们还有什么理由要用HHVM么?
最后, PHP7将会在明年10月发布正式版, 我相信我们还会让它更快, 大家拭目以待吧