PHP 经常用的语句if和三元运算符 echo字符串和数字 $i++和++$i 到底哪个更快 !!!
有时候看到不同的程序员写不同的代码,但是逻辑和最终的效果都一样,但是速度上不知道哪个更快!
本次测评 电脑笔记本I5-7200U芯片!结果仅供参考!
二话不说先上代码:
1 <?php 2 3 // echo $StartTime."<br>"; 4 // echo microtime(); 5 $ci =1000*1000;//1000w次 6 7 8 9 echo "测试打印字符串1"; 10 $StartTime = microtime(1); 11 12 for ($i=0; $i < $ci; $i++) { 13 echo "1"; 14 } 15 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; 16 17 18 echo "<br>测试打印数字1"; 19 $StartTime = microtime(1); 20 21 for ($i=0; $i < $ci; $i++) { 22 echo 1; 23 } 24 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒<br>"; 25 26 27 28 echo "<br>测试if 赋值"; 29 $StartTime = microtime(1); 30 for ($i=0; $i < $ci; $i++) { 31 if($i>0){$z=1;}else{$z=0;} 32 } 33 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; 34 35 36 echo "<br>测试三元 赋值"; 37 $StartTime = microtime(1); 38 for ($i=0; $i < $ci; $i++) { 39 $z = ($i>0)?1:0; 40 } 41 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒<br>"; 42 43 44 45 46 echo '<br>测试$z++'; 47 $StartTime = microtime(1); 48 $z = 0; 49 for ($i=0; $i < $ci; $i++) { 50 $z++; 51 } 52 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; 53 54 55 56 echo '<br>测试++$z'; 57 58 $StartTime = microtime(1); 59 $z=0; 60 for ($i=0; $i < $ci; $i++) { 61 ++$z; 62 } 63 echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; 64 65 ?>
这是每个运行1000W次,结果运行5次截图如下:
第一次:
第二次
第三次
第四次
第五次
最后统计
打印字符串速度稍微快那么一点,
if和三元运算赋值,前面if速度要快点后面三元要快点,
但是先自增要快点,而且几次都差不多快一半的速度
最后上一张1亿次运行的截图吧
结果失望了等了5分钟左右还没渲染出来,其实运算出来了但是网页没渲染出来!
所以我去掉echo打印,直接1次循环 if和三元 自增
代码如下:
<?php //小和QQ496631085 $s=time(); // echo $StartTime."<br>"; // echo microtime(); $ci =1000*1000*10;//1000w次 // echo "测试打印字符串1"; // $StartTime = microtime(1); // for ($i=0; $i < $ci; $i++) { // echo "1"; // } // echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; // echo "<br>测试打印数字1"; // $StartTime = microtime(1); // for ($i=0; $i < $ci; $i++) { // echo 1; // } // echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒<br>"; echo "<br>测试if 赋值"; $StartTime = microtime(1); for ($i=0; $i < $ci; $i++) { if($i>0){$z=1;}else{$z=0;} } echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; echo "<br>测试三元 赋值"; $StartTime = microtime(1); for ($i=0; $i < $ci; $i++) { $z = ($i>0)?1:0; } echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒<br>"; echo '<br>测试$z++'; $StartTime = microtime(1); $z = 0; for ($i=0; $i < $ci; $i++) { $z++; } echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; echo '<br>测试++$z'; $StartTime = microtime(1); $z=0; for ($i=0; $i < $ci; $i++) { ++$z; } echo "<br>总计耗时:".(microtime(1)-$StartTime)."秒"; echo "<h1><br>最终总用时".(time()-$s)."秒</h1>"; ?>
发现 三元又没有if快了,但是++$z还是要快
结果发现都差不多,看自己喜好吧!
如果有什么php评测可以在下方留言!