読者です 読者をやめる 読者になる 読者になる

methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

インクリメントの速度

php
$ cat test.php 
<?php
for ($j = 0; $j < 100; $j++) {
    $a = array();
    for ($i = 0; $i < 300000; $i++) {
        $a[] = $i + $j;
    }
}
?>
$ time php test.php 

real	0m15.714s
user	0m15.073s
sys	0m0.588s

$ vim test.php
$ cat test.php 
<?php
for ($j = 0; $j < 100; ++$j) {
    $a = array();
    for ($i = 0; $i < 300000; ++$i) {
        $a[] = $i + $j;
    }
}
?>
$ time php test.php 

real	0m15.067s
user	0m14.725s
sys	0m0.228s

なんで前置インクリメントの方が速いかはプログラマならすぐ判るよね。それ以前に、前置と後置の違いが判ってたら普通は前置を使うよね。
何でWeb上ではこんなに後置インクリメントが溢れてるのか判らない。

まぁ、パフォーマンスとか気にするなら下手なチューニングするよりも最初からPython使っておけと。

$ cat test2.py 
for i in xrange(100):
    a = []
    for j in xrange(300000):
        a.append(i+j)
$ time python test2.py 

real	0m11.436s
user	0m10.737s
sys	0m0.672s