遠眼鏡屋2

素数書き出し javascript 対 php on Chrome(Windows7)

ネット情報を頼りに、javascriptの勉強を再開。きょうは素数の一覧(50000以内)を生成。
プログラミング講座 〜JavaScript編〜からほとんど丸写しで javascriptプログラム sosuu.html を作成。
◎sosuu.html


<html>
<head>
</head>
<body>
<script type ="text/javascript">
time1 = new Date();
var i = 2;
while (i < 50000) {
var j = 2;
var isPrime = true;
while (j < i) {
if (i % j == 0) {
isPrime = false;
break;
}
j++;
}
if (isPrime) {
document.write(i + " ");
}
i++;
}
time2 = new Date();
difference = ( time2 - time1) / 1000;
document.write("<br><br>" + difference + " 秒経過<br>");
</script>
</body>
</html>
次に、上記sosuu.html を参考に phpプログラム sosuu2.php を作成。
◎sosuu2.php

<html>
<head></head>
<body>
<?php
$time_start = microtime(true);
$i = 2;
while( $i < 50000){
$j = 2;
$p = True;
while( $j < $i ){
if( $i % $j == 0){
$p = False;
break;
}
$j = $j + 1;
}
if( $p == True){
echo $i . " ";
}
$i = $i + 1;
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "<br><br>" . $time . " 秒掛かりました<br>";
?>
</body>
</html>
この二つのプログラムをそれぞれ Chrome のアドレス欄から走らせる。
file:///C:/(任意のフォルダー)/sosuu.html
http://localhost/sosuu2.php (ウェブサーバ環境前提)

何回かやった結果は、javascript が 0.8秒強、php が 6秒強であった。
一概に言えないが、この種計算は javascript が速いようだ。