php cli script with if-then's very slow

From: Date: Thu, 18 Aug 2005 09:14:34 +0000
Subject: php cli script with if-then's very slow
Groups: php.general 
Request: Send a blank email to php-general+get-220843@lists.php.net to get a copy of this message
I've noticed that php cli scripts using for-loops with some if...then's are very slow using the php cli (command line interface). The following php script takes somewhat 100 seconds (php v5.0.3 on a redhat linux, 3 Ghz PC). The same program in c (see below) less than 1 second ... I know that php is a scripting language, but isn't the difference between de c compiled prog and de php script not very extreme ? Frans php script : #!/usr/bin/php <?php $a=0; $r=100; for($p=1;$p<=3;$p++) { for ($c=1; $c<=1230; $c++) {
    for ($j=0;$j<=23;$j++)
    {
     for ($z=0; $z<=$r; $z++)
     {
      $a++;
      if($p==1 && $c!=500 && $j==22)
      {
       $a--;
      }
      if($p==2 && $c!=600 && $j==21)
      {
       $a--;
      }
      if($p==3 && $c!=700 && $j==20)
      {
       $a--;
      }
      if($p==1 && $c!=800 && $j==19)
      {
       $a--;
      }
      if($p==2 && $c!=900 && $j==18)
      {
       $a--;
      }
     }
    }
} } printf("a=%d\n",$a); exit(0); ?> c-prog : main() { int a,r,p,z,j,c; a=0; r=100; for(p=1;p<=3;p++) { for (c=1; c<=1230; c++) {
    for (j=0;j<=23;j++)
    {
     for (z=0; z<=r; z++)
     {
      a++;
      if(p==1 && c!=500 && j==22)
      {
       a--;
      }
      if(p==2 && c!=600 && j==21)
      {
       a--;
      }
      if(p==3 && c!=700 && j==20)
      {
       a--;
      }
      if(p==1 && c!=800 && j==19)
      {
       a--;
      }
      if(p==2 && c!=900 && j==18)
      {
       a--;
      }
     }
    }
} } printf("a=%d\n",a); exit(0); }

« previous php.general (#220843) next »