PHP 5.4 由Arnaud 引入了一个对三元式的优化方案.
我们都知道PHP用写时复制来对变量复制做性能优化, 而在以前的三元式中, 却每次都会复制, 这在操作数是大数组的情况下, 会造成性能问题:
<?php
<?php 为此, Arnaud提供了一个patch, 来对三元式做了一个优化, 使得三元式不会每次都复制操作数, 在优化以后, 开头给的例子的运行时间降低为: float(0.00029182434082031)
The ternary operator always copies its second or third operand, which is very $a = range(0,9); // this takes 0.3 seconds here:
for ($i = 0; $i < 5000000; ++$i) { // this takes 3.8 seconds:
for ($i = 0; $i < 5000000; ++$i) {
I've tried to reduce the performance hit by avoiding the copy when possible Benchmark:
Without patch: (the numbers are the time taken to run the code a certain
$int = 0;
true ? 1 : 0 0.124 With patch:
true ? 1 : 0 0.124
The array copying overhead is eliminated. There is however a slowdown in some 不过, 还是要提醒下: PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好. 谢谢 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |