合并 for 循环以提高效率

PHPABC PHP程序 584 次浏览 , 没有评论

在使用大量次的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%,还是比较明显的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go