/mobile Handheld Friendly website

 performance measurements

Each table row shows performance measurements for this PHP program with a particular command-line input value N.

 N  CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
120.871.094,276472  4% 2% 5% 86%
1622.9722.9937,184472  0% 31% 71% 0%
20547.79548.40546,272472  72% 24% 5% 4%

Read the ↓ make, command line, and program output logs to see how this program was run.

Read binary-trees benchmark to see what this program should do.

 notes

PHP 5.5.0 (cli) (built: Jun 25 2013 13:34:35)

 binary-trees PHP #2 program source code

<?php 
/* The Computer Language Benchmarks Game
   http://benchmarksgame.alioth.debian.org/

   contributed by Peter Baltruschat
   modified by Levi Cameron
   modified by Craig Russell
*/

class Tree {
   public $i;
   public $l;
   public $r;
   
   public function __construct($item, $depth) {
      $this->i = $item;
      if($depth) {
         $this->l = new Tree($item * 2 - 1, --$depth);
         $this->r = new Tree($item * 2, $depth);
      }
   }
   
   public function check() {
      return $this->i
         + ($this->l->l === null ? $this->l->check() : $this->l->i)
         - ($this->r->l === null ? $this->r->check() : $this->r->i);
   }
}

$minDepth = 4;

$n = $argc == 2 ? $argv[1] : 1;
$maxDepth = $minDepth + 2 > $n ? $minDepth + 2 : $n;
$stretchDepth = $maxDepth + 1;

$stretch = new Tree(0, $stretchDepth);
printf("stretch tree of depth %d\t check: %d\n",
   $stretchDepth, $stretch->check());
unset($stretch);

$longLivedTree = new Tree(0, $maxDepth);

$iterations = 1 << $maxDepth;
do
{
   $check = 0;
   for($i = 1; $i <= $iterations; ++$i)
   {
      $check += (new Tree($i, $minDepth))->check()
         + (new Tree(-$i, $minDepth))->check();
   }
   
   printf("%d\t trees of depth %d\t check: %d\n",
      $iterations<<1, $minDepth, $check);
   
   $minDepth += 2;
   $iterations >>= 2;
}
while($minDepth <= $maxDepth);

printf("long lived tree of depth %d\t check: %d\n",
   $maxDepth, $longLivedTree->check());

 make, command-line, and program output logs

Tue, 24 Sep 2013 15:50:49 GMT

COMMAND LINE:
/usr/local/src/php-5.5.0/bin/php -n -d memory_limit=2048M binarytrees.php-2.php 20

PROGRAM OUTPUT:
stretch tree of depth 21	 check: -1
2097152	 trees of depth 4	 check: -2097152
524288	 trees of depth 6	 check: -524288
131072	 trees of depth 8	 check: -131072
32768	 trees of depth 10	 check: -32768
8192	 trees of depth 12	 check: -8192
2048	 trees of depth 14	 check: -2048
512	 trees of depth 16	 check: -512
128	 trees of depth 18	 check: -128
32	 trees of depth 20	 check: -32
long lived tree of depth 20	 check: -1

Revised BSD license

  Home   Conclusions   License   Play