Ask HN: Strange execution times of Javascript and PHP
Hello HN,
just for fun I executed this in javascript:
function test()
{
var r=1;
for (var i=0;i<10000000;i++)
{
r*=1.0000001;
}
return r;
}
var start = (new Date).getTime();
test();
diff = (new Date).getTime() - start;
that gives me about 80msAnd this in PHP:
function test()
{
$r=1;
for ($i=0;$i<10000000;$i++)
{
$r*=1.0000001;
}
return $r;
}
$start = microtime(true)*1000;
$r=test();
echo "$r\n";
$stop = microtime(true)*1000;
echo $stop-$start."\n";
That gives me about 1300 ms on the command line and about 5000 ms when executed by apache.Any ideas to explain these differences?
3 comments
[ 3.8 ms ] story [ 20.8 ms ] threadI guess the browser you're using is compiling the javascript more efficiently (probably by doing some kind of crazy optimization in the for loop) while PHP is not as good for optimizing for loops.
My question was: Why is the Javascript version 20 times faster on the same machine. I mean.. 20 is a really big factor.
Edit : Think about that : web browser are always on the cutting edge of javascript performance with the ton of javascript libraries that keep popping out each day. Everytime a new browser comes out, tons of bloggers test the javascript speed of those browsers so there is a lot of work going into optimizing javascript to make it as lightning-fast as possible.
On the other hand, PHP hasn't been pushed like that towards compile-time optimization so that's why Javascript can sometimes beat PHP in terms of speed tests.