MyCMS / php-codes / Tests / Cost OOP
* Testing difference used classes and functions
* Writed for article "Constructors and destructors" (http://mycms.info/)
*/
@set_time_limit (0);
//===DEFINE VARIABLES AND CONSTANTS===//
define ('MAX', 100);
$error = null;
$structure = array ();
$structure[0] = <<\n";
}
/**/}
?>
EOD;
$structure[1] = <<\n";
}
/*}*/
?>
EOD;
//
if (empty($_GET['version'])) $version = 0;
else $version = 1;
//===END DEFINE VARIABLES AND CONSTANTS===//
//===PREPARE==//
if (!is_dir ('v'.$version)) //Verification found dirrectory of files' version
$error = 'Not found subdirectory [v'.$version.']';
elseif (!is_file ('v'.$version.'/0.php')) //if such file is not found then suppose all files' dirrectory is not found
{
for ($i = 0; $i < MAX; $i++)
{
$fo = fopen('v'.$version.'/'.$i.'.php', 'w');
fwrite($fo, str_replace ('{I}', $i, $structure[$version]));
fclose($fo);
}
}
//===END PREPARE===//
if (!empty($error)) print $error;
else
{
$time['start'] = getMicroTime();
for ($i = 0; $i < MAX; $i++)
{
include ('v'.$version.'/'.$i.'.php');
}
$time['include'] = getMicroTime();
if ($version == 0)
{
$a = new VersionWithClass0();
$fnc = '$a->VersionWithClass0();';
}
else $fnc = 'VersionWithClass0();';
$time['prepare_execute'] = getMicroTime();
for ($i = 0; $i < MAX; $i++)
{
eval ($fnc);
}
$time['execute'] = getMicroTime();
echoTime ($time);
}
//===End default actions===//
//===Functions===//
function getMicroTime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function echoTime($time)
{
$prev = null;
reset ($time);
foreach ( $time as $target=>$time_end )
{
if ($prev)
print "[ {$target} ] = '".($time_end-$prev)."'
";
$prev = $time_end;
}
}
?>