3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class Catalog_Model_DbSelect_Abstract { /** All created instances so far */ protected static $_instances = array(); protected $property; /** * Gets the singleton of a select statement * @param array|string $args The arguments arguments that are needed to build the select (e.g. attribute set names, product types). * @return Catalog_Model_DbSelect_Abstract The select instance */ public static function getInstance($args = null) { $class = get_called_class(); $key = $class . (is_array($args) ? implode('_', $args) : $args); if (!array_key_exists($key, static::$_instances)) { static::$_instances[$key] = new $class($args); } return clone static::$_instances[$key]; } public function setProperty($property) { $this->property=$property;} public function getProperty() { return $this->property;} } class DerivedClass1 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass2 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass3 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass4 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass5 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass6 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass7 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass8 extends Catalog_Model_DbSelect_Abstract {} class DerivedClass9 extends Catalog_Model_DbSelect_Abstract {} $mem = memory_get_usage(); for ($classI = 1; $classI < 10; $classI++) { for ($argsI = 1; $argsI < 20; $argsI++) { for ($varnameI = 1; $varnameI < 20; $varnameI++) { $classname = 'DerivedClass' . $classI; $varname = 'instance' . $varnameI; $args = 'foo' . $argsI; $$varname = $classname::getInstance($args); echo 'called ' . $classname . '::getInstance(' . $args . ')' . PHP_EOL; echo 'memory usage: ' . (memory_get_usage() - $mem) . PHP_EOL; } } }

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.2.00.0060.00619.57
7.1.70.0040.00417.10
7.1.60.0160.01019.31
7.1.50.0100.01717.05
7.0.200.0030.01216.83

preferences:
31.99 ms | 401 KiB | 5 Q