六开彩开奖现场直播 开奖结果

关于PHP5与PHP7的若干问题

发布日期:2019-07-23 23:04   来源:未知   阅读:

  我正着手在Windows系统下搭建PHP环境,在网上找到一些教程,看完之后,产生了以下三个疑问,有人愿意帮忙解答下吗?

  二、为什么php7出来这么久了,与php5中间还隔了php6,很多还是推荐使用php5?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、在Zend引擎和扩展中,经常要创建一个PHP的变量,底层就是一个zval指针。之前的版本都是通过MAKE_STD_ZVAL动态的从堆上分配一个zval内存。而PHP7可以直接使用栈内存。PHP代码中创建的变量也进行了优化,PHP7直接在栈内存上预分配zval。这样节约了大量内存分配和内存管理的操作。

  3、PHP5的hashtable每个元素都是一个 Bucket *,而PHP7直接存Bucket,减少了内存申请次数,提升了Cache命中率和内存访问速度。

  4、PHP的C扩展函数与PHP中的变量进行参数输入时,要使用zend_parse_parameters()函数,这个函数根据一个字符串参数找到对应PHP的zval指针,然后进行赋值。 这个函数实际上有一定的性能消耗。PHP7直接使用宏替换了zend_parse_parameters函数,C扩展中不再需要使用zend_parse_parameters进行逐个参数的查找,宏展开后自动会实现参数赋值。仅此一项就提升了5%的性能。

  除了上面5个主要优化点之外,PHP7还有其他更多的细节性能优化。如基础类型int、float、bool等改为直接进行值拷贝,排序算法改进,PCRE with JIT,execute_data和opline使用全局寄存器等等。PHP7对性能的优化会继续进行下去。

  二、有一群人, 创建了一个PHP6的项目, 主要的目的是为PHP引擎增加Unicode支持. 当时开发者们同时维护5和6的开发, 慢慢的大家发现新功能都等着提交给6, 而6因为开发速度慢, 导致很多新特性没法提交, 状态很不理想. 再后来6就没人开发了

Power by DedeCms