[limb-svn] r6411 - 3.x/trunk/limb/core/tests/bench

svn at limb-project.com svn at limb-project.com
Wed Oct 10 22:46:01 MSD 2007


Author: pachanga
Date: 2007-10-10 22:46:01 +0400 (Wed, 10 Oct 2007)
New Revision: 6411
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6411

Modified:
   3.x/trunk/limb/core/tests/bench/require.php
Log:
-- better require benches

Modified: 3.x/trunk/limb/core/tests/bench/require.php
===================================================================
--- 3.x/trunk/limb/core/tests/bench/require.php	2007-10-10 18:13:11 UTC (rev 6410)
+++ 3.x/trunk/limb/core/tests/bench/require.php	2007-10-10 18:46:01 UTC (rev 6411)
@@ -1,61 +1,128 @@
 <?php
 
-set_include_path(dirname(__FILE__) . '/../../../../;.');
+set_include_path(dirname(__FILE__) . '/../../../../' . PATH_SEPARATOR. '.');
 require_once('limb/core/common.inc.php');
 
-//require_once(dirname(__FILE__) . '/bundle.inc.php');
-
 $path = dirname(__FILE__) . '/MyClass.class.php';
 
 $mark = microtime(true);
 
 for($i=0;$i<1000;$i++)
 {
-  lmb_require(dirname(__FILE__) . '/MyClass' . $i . '.class.php');
+  lmb_require('Boo.class.php');
 }
 
-echo "lmb_require not included file: " . (microtime(true) - $mark) . "\n";
+echo "lmb_require same class, no autoload: " . (microtime(true) - $mark) . "\n";
 
 $mark = microtime(true);
 
 for($i=0;$i<1000;$i++)
 {
+  lmb_require('Boo' . $i . '.class.php');
+}
+
+echo "lmb_require unique class, no autoload: " . (microtime(true) - $mark) . "\n";
+
+$mark = microtime(true);
+
+for($i=0;$i<1000;$i++)
+{
   lmb_require($path);
-  $object = new MyClass();
 }
+$object = new MyClass();
 
-echo "lmb_require absolute: " . (microtime(true) - $mark) . "\n";
+echo "lmb_require absolute, same class, autoload: " . (microtime(true) - $mark) . "\n";
 
 $mark = microtime(true);
 
 for($i=0;$i<1000;$i++)
 {
   lmb_require('MyClass.class.php');
-  $object = new MyClass();
 }
+$object = new MyClass();
 
-echo "lmb_require relative: " . (microtime(true) - $mark) . "\n";
+echo "lmb_require relative, same class, autoload: " . (microtime(true) - $mark) . "\n";
 
+for($i=0;$i<1000;$i++)
+{
+  make_class('UniqueClass' . $i);
+}
 
 $mark = microtime(true);
 
 for($i=0;$i<1000;$i++)
 {
-  require_once($path);
-  $object = new MyClass();
+  $class = 'UniqueClass' . $i;
+  lmb_require(dirname(__FILE__) . '/tmp/'. $class . '.class.php');
+  $object = new $class;
 }
 
-echo "require once absolute: " . (microtime(true) - $mark) . "\n";
+echo "lmb_require absolute, unique class, autoload: " . (microtime(true) - $mark) . "\n";
 
+$mark = microtime(true);
 
+for($i=0;$i<1000;$i++)
+{
+  $class = 'UniqueClass' . $i;
+  lmb_require(dirname(__FILE__) . '/tmp/'. $class . '.class.php');
+  $object = new $class;
+}
+
+echo "lmb_require absolute, again: " . (microtime(true) - $mark) . "\n";
+
 $mark = microtime(true);
 
 for($i=0;$i<1000;$i++)
 {
+  require_once($path);
+}
+$object = new MyClass();
+
+echo "require_once absolute, same class: " . (microtime(true) - $mark) . "\n";
+
+$mark = microtime(true);
+
+for($i=0;$i<1000;$i++)
+{
   require_once('MyClass.class.php');
-  $object = new MyClass();
 }
+$object = new MyClass();
 
-echo "require once relative: " . (microtime(true) - $mark) . "\n";
+echo "require_once relative, same class: " . (microtime(true) - $mark) . "\n";
 
+for($i=0;$i<1000;$i++)
+{
+  make_class('UniqueClazz' . $i);
+}
 
+$mark = microtime(true);
+
+for($i=0;$i<1000;$i++)
+{
+  $class = 'UniqueClazz' . $i;
+  require_once(dirname(__FILE__) . '/tmp/' . $class . '.class.php');
+  $object = new $class();
+}
+
+echo "require_once absolute, unique class: " . (microtime(true) - $mark) . "\n";
+
+$mark = microtime(true);
+
+for($i=0;$i<1000;$i++)
+{
+  $class = 'UniqueClazz' . $i;
+  require_once(dirname(__FILE__) . '/tmp/' . $class . '.class.php');
+  $object = new $class();
+}
+
+echo "require_once absolute, again: " . (microtime(true) - $mark) . "\n";
+
+`rm -rf ./tmp`;
+
+function make_class($name)
+{
+  if(!is_dir('./tmp'))
+    mkdir('./tmp');
+  file_put_contents('./tmp/' . $name . '.class.php', 
+                    '<?php class ' . $name . ' {}; ?>');
+}



More information about the limb-svn mailing list