在使用大量次的for循环时,往往由于循环次数较多而严重影响程序执行效率,这时,我们可以使用循环合并来解决这个问题。
首先看一个普通的for循环,这个循环用于计算50000000次e的指数。
<?php for ($i = 0; $i < 50000000; $i++) { exp(12); } |
我们看一下执行时间:
$ time php for.php
real 0m49.217s
user 0m32.522s
sys 0m0.280s
可以看到,总共需要49s。这时,我们对for循环做一点改动:
<?php for ($i = 0; $i < 50000000; $i++) { exp(12); $i++; exp(12); $i++; exp(12); $i++; exp(12); $i++; exp(12); } |
这样改动后,exp()函数依然被执行了50000000次,但for只会循环50000000 / 5 = 10000000 次。这时,再来看一下执行时间:
$ time php for.php
real 0m28.755s
user 0m23.953s
sys 0m0.204s
可以看到,现在只需要28s,效率提高了大约42%,还是比较明显的。