<?php use Aura\Di\Container; use Aura\Di\Factory; $di = new Container(new Factory()); $di->params['J'] = ['i' => $di->lazyNew('I')]; $di->params['I'] = ['h' => $di->lazyNew('H')]; $di->params['H'] = ['g' => $di->lazyNew('G')]; $di->params['G'] = ['f' => $di->lazyNew('F')]; $di->params['F'] = ['e' => $di->lazyNew('E')]; $di->params['E'] = ['d' => $di->lazyNew('D')]; $di->params['D'] = ['c' => $di->lazyNew('C')]; $di->params['C'] = ['b' => $di->lazyNew('B')]; $di->params['B'] = ['a' => $di->lazyNew('A')]; //trigger autoloader for all required files $a = $di->newinstance('J'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $j = $di->newinstance('J'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);
<?php use Aura\Di\Container; use Aura\Di\Factory; $di = new Container(new Factory()); $di->set('A', $di->lazyNew('A')); //trigger autoloader for all required files $a = $di->newinstance('A'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $a = $di->newinstance('A'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);
<?php use Aura\Di\Container; use Aura\Di\Factory; $di = new Container(new Factory()); $di->set('A', $di->lazyNew('A')); $di->set('B', $di->lazyNew('B')); $di->params['B'] = ['a' => $di->get('A')]; //Trigger the autoloader before measuring execution time $a = $di->newinstance('B'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $b = $di->newinstance('B'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);