top | item 2332626

Ask HN: Strange execution times of Javascript and PHP

1 points| icode | 15 years ago | reply

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 80ms

And 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

order
[+] Khao|15 years ago|reply
I just hosted your php script over here : http://khao.kodingen.com/test.php and it's a lot faster but still not perfect. I get about 721ms when I run it and when I run the javascript version in firebug it's a lot slower : 1188ms.

I 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.

[+] icode|15 years ago|reply
When you compare the PHP with the Javascript version, do you do it on the same machine? It sounds like you run the PHP on the Server and the JS on your client.

My question was: Why is the Javascript version 20 times faster on the same machine. I mean.. 20 is a really big factor.