T2000の罠

こないだのサーバ入れ替えで使っているT2000日本オラクル | Integrated Cloud Applications and Platform Services。このコンテナ上で動作しているあるAppの動作が以前のV240より遅いと報告。
ソースをチェックすると、DBから抽出してきたデータに対して、条件×件数でさらに二重ループをかけている。以前の環境と同時に使えるようにして動作をチェックすると、件数が多いところほど遅い。

そういえば、T1プロセッサは数値計算はそれほど早くないんです。。なんてセミナーで言っていたなと思い出してちょとしたスクリプトで検証。9999×9999の空ループをするperlプログラムを1秒でかいて、

#!/usr/bin/perl
$i=0 ;
$j=0 ;

while ( $i < 9999 ){
    while ( $j < 9999 ){
        $j = $j +1 ;
    }
    $j =  0;
    $i = $i+1 ;
}

いくつかの環境で実行。

T2000(SparcT1)

$ time ./mm.pl

real    2m2.111s
user    2m2.120s
sys     0m0.012s

V240(SparcIIIi×2)

$ time ./mm.pl

real    1m10.842s
user    1m10.780s
sys     0m0.010s

X5440(QuadXeon2×4:うち8コア割当環境)

$ time ./mm.pl 

real	0m12.954s
user	0m12.485s
sys	0m0.465s

ついでにIntelIII 1MHz

$ time ./mm.pl 

real	1m30.262s
user	1m20.190s
sys	0m0.130s

さらについでにIntelCore2Duo 2.8MHz

$ time ./mm.pl 

real	0m20.963s
user	0m20.173s
sys	0m0.038s

そうかぁ、Webアプリでもぐるぐる回る処理があると遅くなるんですねぇ。Intelのどこかへ移すか。