Last active
August 29, 2015 14:23
-
-
Save aohorodnyk/c3c1011afa4ddc3d0365 to your computer and use it in GitHub Desktop.
executed command: `$ php test.php 100 10000000 > result.txt`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class A1{} | |
class A2{} | |
class A3{} | |
class A4{} | |
class A5{} | |
class A6{} | |
class A7{} | |
class A8{} | |
class A9{} | |
class PhpClass | |
{ | |
/** | |
* @var A1 | |
*/ | |
private $a1; | |
/** | |
* @var A2 | |
*/ | |
private $a2; | |
/** | |
* @var A3 | |
*/ | |
private $a3; | |
/** | |
* @var A4 | |
*/ | |
private $a4; | |
/** | |
* @var A5 | |
*/ | |
private $a5; | |
/** | |
* @var A6 | |
*/ | |
private $a6; | |
/** | |
* @var A7 | |
*/ | |
private $a7; | |
/** | |
* @var A8 | |
*/ | |
private $a8; | |
/** | |
* @var A9 | |
*/ | |
private $a9; | |
/** | |
* @param A1 $a1 | |
* @param A2 $a2 | |
* @param A3 $a3 | |
* @param A4 $a4 | |
* @param A5 $a5 | |
* @param A6 $a6 | |
* @param A7 $a7 | |
* @param A8 $a8 | |
* @param A9 $a9 | |
*/ | |
public function __construct(\A1 $a1, \A2 $a2, \A3 $a3, \A4 $a4, \A5 $a5, \A6 $a6, \A7 $a7, \A8 $a8, \A9 $a9) | |
{ | |
$this->a1 = $a1; | |
$this->a2 = $a2; | |
$this->a3 = $a3; | |
$this->a4 = $a4; | |
$this->a5 = $a5; | |
$this->a6 = $a6; | |
$this->a7 = $a7; | |
$this->a8 = $a8; | |
$this->a9 = $a9; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/classes.php'; | |
$instances = []; | |
for ($i = 1; $i <= 9; $i++) { | |
$className = "\A{$i}"; | |
$instances[] = new $className(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8] | |
); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
function createObject($className, $instances) | |
{ | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8] | |
); | |
} | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
createObject($className, $instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
new $className(...$instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
function createObject($className, array $instances) | |
{ | |
new $className(...$instances); | |
} | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
createObject($className, $instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
switch (count($instances)) { | |
case 5: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4]); | |
break; | |
case 6: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5]); | |
break; | |
case 7: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6]); | |
break; | |
case 8: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7]); | |
break; | |
case 9: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8] | |
); | |
break; | |
default: | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
function createObject($className, array $instances) { | |
switch (count($instances)) { | |
case 5: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4]); | |
break; | |
case 6: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5]); | |
break; | |
case 7: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6]); | |
break; | |
case 8: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7]); | |
break; | |
case 9: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8] | |
); | |
break; | |
default: | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
} | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
createObject($className, $instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
switch (count($instances)) { | |
case 1: | |
new $className($instances[0]); | |
break; | |
case 2: | |
new $className($instances[0], $instances[1]); | |
break; | |
case 3: | |
new $className($instances[0], $instances[1], $instances[2]); | |
break; | |
case 4: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3]); | |
break; | |
case 5: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4]); | |
break; | |
case 6: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5]); | |
break; | |
case 7: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6]); | |
break; | |
case 8: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7]); | |
break; | |
case 9: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8] | |
); | |
break; | |
case 10: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8], $instances[9] | |
); | |
break; | |
case 11: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10] | |
); | |
break; | |
case 12: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11] | |
); | |
break; | |
case 13: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12] | |
); | |
break; | |
case 14: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12], | |
$instances[13] | |
); | |
break; | |
case 15: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12], | |
$instances[13], | |
$instances[14] | |
); | |
break; | |
default: | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
function createObject($className, array $instances) { | |
switch (count($instances)) { | |
case 1: | |
new $className($instances[0]); | |
break; | |
case 2: | |
new $className($instances[0], $instances[1]); | |
break; | |
case 3: | |
new $className($instances[0], $instances[1], $instances[2]); | |
break; | |
case 4: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3]); | |
break; | |
case 5: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4]); | |
break; | |
case 6: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5]); | |
break; | |
case 7: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6]); | |
break; | |
case 8: | |
new $className($instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7]); | |
break; | |
case 9: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8] | |
); | |
break; | |
case 10: | |
new $className( | |
$instances[0], $instances[1], $instances[2], $instances[3], $instances[4], $instances[5], $instances[6], $instances[7], $instances[8], $instances[9] | |
); | |
break; | |
case 11: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10] | |
); | |
break; | |
case 12: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11] | |
); | |
break; | |
case 13: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12] | |
); | |
break; | |
case 14: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12], | |
$instances[13] | |
); | |
break; | |
case 15: | |
new $className( | |
$instances[0], | |
$instances[1], | |
$instances[2], | |
$instances[3], | |
$instances[4], | |
$instances[5], | |
$instances[6], | |
$instances[7], | |
$instances[8], | |
$instances[9], | |
$instances[10], | |
$instances[11], | |
$instances[12], | |
$instances[13], | |
$instances[14] | |
); | |
break; | |
default: | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
} | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
createObject($className, $instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__ . '/dependencies.php'; | |
function createObject($className, $instances) { | |
$reflection = new \ReflectionClass($className); | |
$reflection->newInstanceArgs($instances); | |
} | |
$startTime = microtime(true); | |
$className = '\PhpClass'; | |
for ($i = 0; $i < $argv[1]; $i++) { | |
createObject($className, $instances); | |
} | |
echo microtime(true) - $startTime; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
All results: | |
new: 0m23.567s, 0m22.184s, 0m22.930s, 0m22.033s, 0m23.271s, 0m30.521s, 0m22.811s, 0m22.439s, 0m23.409s, 0m21.890s, 0m24.503s, 0m23.557s, 0m23.615s, 0m24.139s, 0m22.463s, 0m23.430s, 0m23.817s, 0m25.004s, 0m23.363s, 0m22.204s, 0m23.517s, 0m24.305s, 0m24.607s, 0m24.654s, 0m21.859s, 0m24.714s, 0m25.887s, 0m22.940s, 0m26.433s, 0m24.507s, 0m26.479s, 0m26.752s, 0m24.675s, 0m24.451s, 0m22.610s, 0m23.549s, 0m26.411s, 0m24.667s, 0m23.419s, 0m22.524s, 0m23.507s, 0m23.825s, 0m22.905s, 0m22.918s, 0m23.049s, 0m24.831s, 0m23.319s, 0m27.591s, 0m24.104s, 0m26.784s, 0m22.311s, 0m24.583s, 0m22.714s, 0m25.247s, 0m23.724s, 0m23.528s, 0m22.491s, 0m22.842s, 0m23.368s, 0m23.817s, 0m23.125s, 0m22.933s, 0m23.786s, 0m23.223s, 0m24.372s, 0m26.030s, 0m22.769s, 0m24.796s, 0m23.759s, 0m26.581s, 0m25.014s, 0m24.175s, 0m23.711s, 0m24.802s, 0m24.667s, 0m23.220s, 0m23.307s, 0m22.722s, 0m24.103s, 0m25.049s, 0m23.328s, 0m22.987s, 0m24.116s, 0m26.804s, 0m22.556s, 0m22.825s, 0m25.009s, 0m24.148s, 0m24.243s, 0m24.588s, 0m30.962s, 0m23.648s, 0m24.072s, 0m24.477s, 0m23.787s, 0m22.924s, 0m22.889s, 0m24.074s, 0m22.424s, 0m23.470s | |
new_function: 0m24.533s, 0m23.326s, 0m25.541s, 0m23.297s, 0m26.556s, 0m28.294s, 0m24.261s, 0m25.502s, 0m25.602s, 0m23.770s, 0m25.882s, 0m26.213s, 0m25.516s, 0m24.883s, 0m27.274s, 0m25.495s, 0m24.320s, 0m24.156s, 0m24.490s, 0m23.973s, 0m24.390s, 0m32.453s, 0m27.069s, 0m26.916s, 0m24.148s, 0m27.225s, 0m24.816s, 0m24.969s, 0m27.026s, 0m28.123s, 0m27.038s, 0m28.591s, 0m24.219s, 0m28.916s, 0m25.622s, 0m25.489s, 0m26.050s, 0m26.858s, 0m25.264s, 0m25.956s, 0m27.397s, 0m24.911s, 0m24.370s, 0m24.662s, 0m26.951s, 0m24.433s, 0m26.318s, 0m25.568s, 0m24.248s, 0m26.319s, 0m25.244s, 0m30.228s, 0m26.176s, 0m25.873s, 0m24.733s, 0m25.865s, 0m24.251s, 0m25.536s, 0m24.906s, 0m24.567s, 0m26.107s, 0m25.773s, 0m25.105s, 0m26.757s, 0m24.390s, 0m25.148s, 0m26.909s, 0m25.931s, 0m25.084s, 0m26.881s, 0m26.595s, 0m27.423s, 0m25.849s, 0m27.660s, 0m26.024s, 0m24.565s, 0m24.160s, 0m25.350s, 0m25.466s, 0m24.050s, 0m24.895s, 0m27.569s, 0m26.339s, 0m25.960s, 0m25.908s, 0m24.758s, 0m25.033s, 0m27.470s, 0m26.045s, 0m28.758s, 0m32.008s, 0m25.131s, 0m26.629s, 0m26.236s, 0m25.753s, 0m25.107s, 0m24.368s, 0m24.538s, 0m24.486s, 0m23.815s | |
new_splat: 0m21.488s, 0m20.870s, 0m20.720s, 0m20.756s, 0m23.086s, 0m27.731s, 0m21.110s, 0m20.170s, 0m22.511s, 0m20.250s, 0m21.497s, 0m22.891s, 0m22.112s, 0m21.733s, 0m22.976s, 0m21.825s, 0m20.496s, 0m20.867s, 0m21.078s, 0m20.648s, 0m21.796s, 0m21.888s, 0m21.474s, 0m22.246s, 0m20.306s, 0m21.884s, 0m22.091s, 0m21.730s, 0m23.264s, 0m22.144s, 0m23.100s, 0m23.861s, 0m21.956s, 0m22.176s, 0m22.487s, 0m21.712s, 0m22.824s, 0m21.237s, 0m22.564s, 0m23.084s, 0m21.618s, 0m23.364s, 0m21.587s, 0m22.823s, 0m22.791s, 0m21.776s, 0m22.308s, 0m22.944s, 0m21.051s, 0m21.248s, 0m27.466s, 0m22.781s, 0m21.604s, 0m22.638s, 0m22.856s, 0m21.735s, 0m22.789s, 0m21.335s, 0m20.766s, 0m21.771s, 0m22.288s, 0m20.846s, 0m21.415s, 0m23.612s, 0m20.852s, 0m21.854s, 0m20.902s, 0m24.406s, 0m21.295s, 0m22.051s, 0m21.244s, 0m22.511s, 0m22.190s, 0m22.329s, 0m23.734s, 0m21.029s, 0m22.361s, 0m22.330s, 0m21.177s, 0m21.002s, 0m23.035s, 0m21.864s, 0m21.669s, 0m23.831s, 0m22.747s, 0m21.209s, 0m21.967s, 0m23.816s, 0m22.716s, 0m27.450s, 0m28.842s, 0m21.536s, 0m21.449s, 0m21.643s, 0m22.139s, 0m21.444s, 0m20.311s, 0m21.452s, 0m20.716s, 0m20.241s | |
new_splat_function: 0m24.005s, 0m22.831s, 0m22.996s, 0m22.392s, 0m25.621s, 0m26.906s, 0m22.883s, 0m22.881s, 0m23.093s, 0m22.457s, 0m23.961s, 0m23.260s, 0m23.443s, 0m22.037s, 0m24.186s, 0m26.869s, 0m23.226s, 0m22.408s, 0m23.527s, 0m22.890s, 0m23.467s, 0m26.105s, 0m22.413s, 0m24.045s, 0m22.524s, 0m23.328s, 0m24.526s, 0m23.438s, 0m27.063s, 0m25.531s, 0m23.348s, 0m24.365s, 0m24.836s, 0m23.816s, 0m24.188s, 0m24.201s, 0m23.856s, 0m23.207s, 0m24.122s, 0m24.134s, 0m23.530s, 0m23.974s, 0m24.450s, 0m23.286s, 0m24.830s, 0m23.357s, 0m24.472s, 0m32.704s, 0m23.443s, 0m22.706s, 0m22.703s, 0m23.624s, 0m24.090s, 0m24.605s, 0m22.613s, 0m23.023s, 0m23.634s, 0m23.276s, 0m25.102s, 0m23.455s, 0m24.251s, 0m24.388s, 0m24.134s, 0m24.435s, 0m23.274s, 0m24.241s, 0m22.848s, 0m24.280s, 0m23.834s, 0m23.910s, 0m23.976s, 0m23.271s, 0m26.331s, 0m25.218s, 0m24.086s, 0m24.496s, 0m23.839s, 0m25.669s, 0m23.444s, 0m24.091s, 0m24.449s, 0m24.061s, 0m24.145s, 0m23.765s, 0m24.856s, 0m23.630s, 0m22.701s, 0m23.903s, 0m22.833s, 0m25.825s, 0m27.641s, 0m22.971s, 0m23.782s, 0m23.749s, 0m23.199s, 0m22.572s, 0m23.095s, 0m26.039s, 0m23.649s, 0m23.059s | |
new_switch_small: 0m27.615s, 0m26.093s, 0m26.062s, 0m25.236s, 0m27.130s, 0m31.788s, 0m27.440s, 0m26.382s, 0m25.909s, 0m25.480s, 0m29.479s, 0m26.618s, 0m27.613s, 0m24.885s, 0m26.530s, 0m32.933s, 0m27.512s, 0m25.496s, 0m26.032s, 0m26.351s, 0m26.079s, 0m26.580s, 0m28.477s, 0m26.629s, 0m26.398s, 0m25.859s, 0m26.171s, 0m27.560s, 0m28.682s, 0m29.356s, 0m26.818s, 0m28.279s, 0m27.492s, 0m27.476s, 0m28.409s, 0m27.451s, 0m28.315s, 0m27.337s, 0m27.358s, 0m26.959s, 0m26.293s, 0m26.255s, 0m25.917s, 0m25.131s, 0m27.109s, 0m26.318s, 0m26.326s, 0m28.300s, 0m25.813s, 0m26.530s, 0m27.019s, 0m27.895s, 0m26.758s, 0m28.073s, 0m25.701s, 0m27.137s, 0m27.228s, 0m25.627s, 0m26.434s, 0m26.243s, 0m26.177s, 0m26.309s, 0m27.816s, 0m28.631s, 0m26.235s, 0m26.697s, 0m31.492s, 0m26.861s, 0m26.572s, 0m26.761s, 0m27.163s, 0m27.343s, 0m28.383s, 0m30.059s, 0m26.626s, 0m27.086s, 0m27.548s, 0m26.240s, 0m26.342s, 0m26.624s, 0m27.356s, 0m27.540s, 0m27.344s, 0m28.757s, 0m30.571s, 0m25.444s, 0m25.990s, 0m26.951s, 0m26.917s, 0m28.945s, 0m32.956s, 0m25.733s, 0m27.285s, 0m25.335s, 0m26.326s, 0m25.279s, 0m26.369s, 0m26.158s, 0m25.849s, 0m26.594s | |
new_switch_small_function: 0m27.463s, 0m27.447s, 0m26.576s, 0m27.004s, 0m29.229s, 0m37.621s, 0m29.038s, 0m30.083s, 0m27.291s, 0m27.536s, 0m28.812s, 0m28.781s, 0m28.530s, 0m29.811s, 0m28.324s, 0m34.820s, 0m28.122s, 0m27.154s, 0m28.800s, 0m29.468s, 0m28.493s, 0m28.641s, 0m28.446s, 0m30.082s, 0m28.419s, 0m27.744s, 0m27.210s, 0m29.317s, 0m31.233s, 0m31.011s, 0m28.055s, 0m30.261s, 0m31.859s, 0m30.677s, 0m28.397s, 0m30.047s, 0m28.865s, 0m28.996s, 0m30.676s, 0m28.709s, 0m28.188s, 0m27.367s, 0m27.741s, 0m27.921s, 0m28.895s, 0m28.228s, 0m31.042s, 0m28.975s, 0m27.633s, 0m29.360s, 0m28.316s, 0m29.399s, 0m29.310s, 0m30.080s, 0m28.272s, 0m31.732s, 0m29.186s, 0m28.714s, 0m28.734s, 0m28.084s, 0m28.580s, 0m29.407s, 0m28.572s, 0m28.930s, 0m29.710s, 0m29.643s, 0m29.907s, 0m29.073s, 0m28.285s, 0m28.745s, 0m29.752s, 0m30.575s, 0m28.357s, 0m30.087s, 0m27.538s, 0m29.640s, 0m28.266s, 0m28.939s, 0m28.666s, 0m30.410s, 0m28.162s, 0m30.282s, 0m28.324s, 0m28.633s, 0m31.069s, 0m28.516s, 0m31.112s, 0m29.202s, 0m29.886s, 0m32.939s, 0m29.070s, 0m28.733s, 0m29.362s, 0m29.582s, 0m29.209s, 0m27.820s, 0m28.115s, 0m29.942s, 0m28.033s, 0m27.721s | |
new_switch_typical: 0m26.565s, 0m26.611s, 0m29.144s, 0m27.953s, 0m28.489s, 0m34.579s, 0m30.263s, 0m27.535s, 0m26.567s, 0m26.723s, 0m28.049s, 0m28.867s, 0m29.184s, 0m26.937s, 0m27.890s, 0m28.301s, 0m27.599s, 0m28.587s, 0m27.097s, 0m32.003s, 0m28.752s, 0m29.119s, 0m27.349s, 0m29.620s, 0m26.278s, 0m28.302s, 0m25.995s, 0m28.889s, 0m33.544s, 0m30.155s, 0m27.717s, 0m29.953s, 0m27.049s, 0m29.801s, 0m28.208s, 0m28.571s, 0m28.724s, 0m28.137s, 0m27.050s, 0m28.400s, 0m27.194s, 0m28.337s, 0m28.045s, 0m27.732s, 0m28.533s, 0m27.510s, 0m28.722s, 0m28.654s, 0m28.479s, 0m28.456s, 0m29.215s, 0m30.759s, 0m27.319s, 0m27.753s, 0m30.314s, 0m27.125s, 0m26.879s, 0m28.318s, 0m28.157s, 0m28.504s, 0m28.575s, 0m28.288s, 0m29.340s, 0m29.150s, 0m27.309s, 0m30.202s, 0m29.033s, 0m27.815s, 0m28.424s, 0m27.968s, 0m28.335s, 0m29.585s, 0m27.593s, 0m28.839s, 0m26.581s, 0m28.100s, 0m28.036s, 0m28.737s, 0m26.910s, 0m28.457s, 0m29.977s, 0m29.212s, 0m31.242s, 0m27.466s, 0m30.098s, 0m26.949s, 0m28.050s, 0m27.540s, 0m28.920s, 0m34.955s, 0m27.822s, 0m29.339s, 0m27.657s, 0m29.421s, 0m28.989s, 0m26.773s, 0m28.043s, 0m29.183s, 0m26.950s, 0m27.601s | |
new_switch_typical_function: 0m28.506s, 0m27.370s, 0m28.486s, 0m28.888s, 0m30.600s, 0m37.161s, 0m28.721s, 0m34.720s, 0m28.669s, 0m31.152s, 0m28.950s, 0m32.000s, 0m29.473s, 0m29.238s, 0m32.051s, 0m30.825s, 0m29.691s, 0m29.074s, 0m27.999s, 0m33.553s, 0m30.131s, 0m30.374s, 0m29.118s, 0m29.713s, 0m27.726s, 0m30.515s, 0m27.742s, 0m38.518s, 0m30.342s, 0m29.744s, 0m29.963s, 0m32.616s, 0m28.731s, 0m33.111s, 0m28.284s, 0m31.419s, 0m29.284s, 0m28.320s, 0m30.303s, 0m30.024s, 0m29.931s, 0m30.214s, 0m30.968s, 0m29.965s, 0m31.608s, 0m30.558s, 0m31.328s, 0m29.693s, 0m31.306s, 0m31.088s, 0m31.396s, 0m29.920s, 0m30.969s, 0m29.139s, 0m29.501s, 0m29.295s, 0m29.095s, 0m29.159s, 0m31.154s, 0m31.098s, 0m29.183s, 0m31.689s, 0m30.879s, 0m28.864s, 0m30.513s, 0m30.752s, 0m29.583s, 0m29.417s, 0m30.501s, 0m32.229s, 0m29.415s, 0m30.595s, 0m29.563s, 0m29.068s, 0m28.162s, 0m29.020s, 0m28.305s, 0m30.189s, 0m30.693s, 0m29.888s, 0m29.090s, 0m30.556s, 0m31.406s, 0m29.116s, 0m30.922s, 0m29.698s, 0m30.375s, 0m30.174s, 0m29.084s, 0m36.818s, 0m32.208s, 0m32.038s, 0m28.828s, 0m29.530s, 0m30.315s, 0m28.378s, 0m30.262s, 0m29.133s, 0m33.057s, 0m29.405s | |
reflection_newinstanceargs: 0m28.567s, 0m29.773s, 0m28.686s, 0m29.527s, 0m29.989s, 0m31.089s, 0m29.490s, 0m30.106s, 0m30.815s, 0m29.584s, 0m31.106s, 0m28.761s, 0m30.344s, 0m29.444s, 0m30.155s, 0m30.140s, 0m30.630s, 0m28.775s, 0m31.485s, 0m29.054s, 0m34.404s, 0m29.749s, 0m29.415s, 0m31.067s, 0m28.575s, 0m30.778s, 0m29.395s, 0m38.669s, 0m31.614s, 0m29.535s, 0m32.008s, 0m34.703s, 0m30.647s, 0m37.962s, 0m29.187s, 0m30.761s, 0m30.596s, 0m30.326s, 0m29.486s, 0m31.546s, 0m29.531s, 0m29.276s, 0m29.989s, 0m30.654s, 0m33.502s, 0m30.666s, 0m31.749s, 0m29.612s, 0m30.752s, 0m28.822s, 0m31.464s, 0m29.038s, 0m33.245s, 0m32.240s, 0m31.039s, 0m30.064s, 0m29.852s, 0m29.201s, 0m30.270s, 0m30.691s, 0m29.629s, 0m32.291s, 0m31.023s, 0m31.793s, 0m30.147s, 0m31.750s, 0m31.676s, 0m29.456s, 0m30.982s, 0m32.086s, 0m30.471s, 0m32.117s, 0m29.987s, 0m31.797s, 0m28.636s, 0m30.226s, 0m29.632s, 0m29.969s, 0m30.527s, 0m30.409s, 0m30.178s, 0m30.051s, 0m31.485s, 0m28.777s, 0m31.042s, 0m29.684s, 0m31.478s, 0m30.082s, 0m30.932s, 0m36.027s, 0m30.444s, 0m31.116s, 0m30.921s, 0m30.155s, 0m30.370s, 0m29.274s, 0m29.432s, 0m28.887s, 0m31.248s, 0m29.611s | |
reflection_newinstanceargs_function: 0m29.676s, 0m29.752s, 0m30.183s, 0m31.925s, 0m32.353s, 0m32.784s, 0m29.540s, 0m32.682s, 0m29.728s, 0m31.235s, 0m30.761s, 0m29.738s, 0m30.752s, 0m29.871s, 0m32.836s, 0m30.521s, 0m32.048s, 0m30.046s, 0m30.629s, 0m31.850s, 0m34.555s, 0m30.898s, 0m31.197s, 0m29.620s, 0m31.252s, 0m33.178s, 0m30.951s, 0m40.417s, 0m34.527s, 0m34.346s, 0m31.833s, 0m42.880s, 0m33.651s, 0m34.384s, 0m30.559s, 0m31.895s, 0m31.322s, 0m33.165s, 0m30.942s, 0m30.885s, 0m31.028s, 0m30.596s, 0m32.812s, 0m31.375s, 0m32.051s, 0m32.215s, 0m30.341s, 0m31.839s, 0m32.328s, 0m31.867s, 0m33.110s, 0m33.829s, 0m32.728s, 0m31.304s, 0m31.688s, 0m34.579s, 0m30.449s, 0m31.013s, 0m31.560s, 0m30.912s, 0m32.246s, 0m33.306s, 0m30.622s, 0m32.243s, 0m31.104s, 0m34.389s, 0m32.103s, 0m34.151s, 0m31.626s, 0m33.961s, 0m31.292s, 0m33.763s, 0m32.804s, 0m33.361s, 0m31.184s, 0m30.634s, 0m29.864s, 0m31.200s, 0m36.742s, 0m31.482s, 0m31.948s, 0m31.357s, 0m32.181s, 0m33.270s, 0m32.477s, 0m30.883s, 0m31.352s, 0m31.244s, 0m33.937s, 0m45.066s, 0m32.782s, 0m31.464s, 0m29.681s, 0m31.974s, 0m32.335s, 0m29.977s, 0m37.074s, 0m30.842s, 0m30.294s, 0m30.423s | |
Sum: | |
new: 40m3.048s | |
new_function: 43m2.605s | |
new_splat: 36m55.390s | |
new_splat_function: 40m1.203s | |
new_switch_small: 45m13.043s | |
new_switch_small_function: 48m35.017s | |
new_switch_typical: 47m30.023s | |
new_switch_typical_function: 50m29.390s | |
reflection_newinstanceargs: 51m5.401s | |
reflection_newinstanceargs_function: 53m37.627s | |
Average: | |
new: 0m24.030s | |
new_function: 0m25.826s | |
new_splat: 0m22.154s | |
new_splat_function: 0m24.012s | |
new_switch_small: 0m27.130s | |
new_switch_small_function: 0m29.150s | |
new_switch_typical: 0m28.500s | |
new_switch_typical_function: 0m30.294s | |
reflection_newinstanceargs: 0m30.654s | |
reflection_newinstanceargs_function: 0m32.176s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$files = [ | |
'new', | |
'new_function', | |
'new_splat', | |
'new_splat_function', | |
'new_switch_small', | |
'new_switch_small_function', | |
'new_switch_typical', | |
'new_switch_typical_function', | |
'reflection_newinstanceargs', | |
'reflection_newinstanceargs_function' | |
]; | |
$results = []; | |
for ($i = 1; $i <= $argv[1]; $i++) { | |
echo "Start execution number {$i} " . getNow() . PHP_EOL; | |
foreach ($files as $file) { | |
echo "Start execute {$file} " . getNow() . PHP_EOL; | |
$results[$file][] = shell_exec('php ' . __DIR__ . "/{$file}.php {$argv[2]}"); | |
echo "Finish execute {$file} " . getNow() . PHP_EOL; | |
} | |
echo "Finish execution number {$i} " . getNow() . PHP_EOL . PHP_EOL; | |
} | |
echo "All results: \n"; | |
foreach ($results as $keyResults => $result) { | |
$times = []; | |
foreach ($result as $keyResult => $time) { | |
$times[] = convertToString($time); | |
} | |
echo "$keyResults: " . implode(', ', $times) . PHP_EOL; | |
} | |
echo "\nSum: \n"; | |
foreach ($results as $keyResults => $result) { | |
echo "$keyResults: " . convertToString(array_sum($result)) . PHP_EOL; | |
} | |
echo "\nAverage: \n"; | |
foreach ($results as $keyResults => $result) { | |
echo "$keyResults: " . convertToString(array_sum($result) / count($result)) . PHP_EOL; | |
} | |
function convertToMicrotime(array $timeList) | |
{ | |
$convertedTimeList = []; | |
foreach ($timeList as $time) { | |
preg_match('/(\d+)m([\d\.]+)/u', $time, $matches); | |
$microtime = $matches[1] * 60 + $matches[2]; | |
$convertedTimeList[] = $microtime; | |
} | |
return $convertedTimeList; | |
} | |
function convertToString($time) | |
{ | |
$minutes = (int)(((int)$time) / 60); | |
$seconds = number_format($time - ($minutes * 60), 3); | |
return "{$minutes}m{$seconds}s"; | |
} | |
function getNow() | |
{ | |
return '(' . date('d.m.Y H:i:s') . ')'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment