3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Piwik - free/libre analytics platform * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ namespace Piwik { use Piwik\Tests\Framework\Mock\File; function filesize($filename) { if (File::getFileSize() !== null) { return File::getFileSize(); } return \filesize($filename); } function file_exists($filename) { if (File::getFileExists() !== null) { return File::getFileExists(); } return \file_exists($filename); } } class Test { public static function tester() { $size = self::getFileSize('test', 'MB'); return $size !== null && $size >= 100; } public static function getFileSize($pathToFile, $unit = 'B') { $unit = strtoupper($unit); $units = array('TB' => pow(1024, 4), 'GB' => pow(1024, 3), 'MB' => pow(1024, 2), 'KB' => 1024, 'B' => 1); if (!array_key_exists($unit, $units)) { throw new Exception('Invalid unit given'); } if (!file_exists($pathToFile)) { return; } $filesize = filesize($pathToFile); $factor = $units[$unit]; $converted = $filesize / $factor; return $converted; } } namespace Piwik\Tests\Framework\Mock { class File { static $filesize = null; static $fileExists = null; public static function getFileSize() { return self::$filesize; } public static function setFileSize($filesize) { self::$filesize = $filesize; } public static function reset() { self::$filesize = null; self::$fileExists = null; } public static function getFileExists() { return self::$fileExists; } public static function setFileExists($exists) { self::$fileExists = $exists; } } } File::setFileSize(1024 * 1024 * 99); File::setFileExists(true); var_dump(\Piwik\Test::tester()); File::setFileSize(1024 * 1024 * 101); File::setFileExists(true); var_dump(\Piwik\Test::tester());

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)
5.4.350.0070.06019.12
5.4.340.0060.03812.04
5.4.320.0080.03412.53
5.4.310.0060.04412.52
5.4.300.0050.03812.53
5.4.290.0050.03912.52
5.4.280.0040.03912.42
5.4.270.0050.03812.42
5.4.260.0080.03712.42
5.4.250.0060.03712.42
5.4.240.0080.03812.42
5.4.230.0040.04112.41
5.4.220.0070.03612.41
5.4.210.0040.04012.41
5.4.200.0050.04212.41
5.4.190.0040.04512.41
5.4.180.0110.04112.41
5.4.170.0050.03912.42
5.4.160.0070.03712.41
5.4.150.0050.03712.41
5.4.140.0040.04012.09
5.4.130.0100.03312.08
5.4.120.0070.03712.04
5.4.110.0050.04112.03
5.4.100.0100.03412.04
5.4.90.0070.04012.04
5.4.80.0030.04012.04
5.4.70.0060.03512.03
5.4.60.0060.03512.03
5.4.50.0100.03612.03
5.4.40.0080.03212.02
5.4.30.0030.04412.01
5.4.20.0080.03612.01
5.4.10.0070.03412.01
5.4.00.0100.03211.50
5.3.290.0060.04012.80
5.3.280.0060.03812.71
5.3.270.0040.04312.72
5.3.260.0050.04212.72
5.3.250.0060.04212.72
5.3.240.0080.03612.71
5.3.230.0040.04012.71
5.3.220.0060.04112.68
5.3.210.0060.03912.68
5.3.200.0050.03912.68
5.3.190.0090.04312.68
5.3.180.0060.03712.68
5.3.170.0080.03512.67
5.3.160.0060.03712.67
5.3.150.0080.03712.67
5.3.140.0020.04312.66
5.3.130.0080.03612.66
5.3.120.0050.04012.66
5.3.110.0040.04212.66
5.3.100.0120.03612.13
5.3.90.0080.03812.11
5.3.80.0060.03512.10
5.3.70.0100.03412.10
5.3.60.0030.04312.09
5.3.50.0090.03512.04
5.3.40.0080.03812.03
5.3.30.0060.03812.00
5.3.20.0030.04011.78
5.3.10.0060.03511.74
5.3.00.0070.03511.72
5.2.170.0070.0299.18
5.2.160.0040.0319.19
5.2.150.0040.0319.18
5.2.140.0080.0329.18
5.2.130.0060.0309.14
5.2.120.0050.0299.14
5.2.110.0080.0329.15
5.2.100.0060.0289.14
5.2.90.0060.0379.14
5.2.80.0070.0359.14
5.2.70.0080.0309.13
5.2.60.0060.0329.09
5.2.50.0060.0319.06
5.2.40.0020.0319.04
5.2.30.0050.0299.01
5.2.20.0070.0289.00
5.2.10.0060.0278.92
5.2.00.0050.0298.78
5.1.60.0060.0238.07
5.1.50.0050.0248.07
5.1.40.0060.0218.05
5.1.30.0030.0278.39
5.1.20.0040.0318.42
5.1.10.0040.0328.14
5.1.00.0030.0268.14
5.0.50.0030.0216.62
5.0.40.0080.0166.48
5.0.30.0040.0366.29
5.0.20.0020.0226.26
5.0.10.0030.0206.25
5.0.00.0070.0336.23
4.4.90.0040.0144.78
4.4.80.0030.0174.75
4.4.70.0040.0154.75
4.4.60.0020.0174.76
4.4.50.0030.0174.77
4.4.40.0070.0274.71
4.4.30.0040.0174.76
4.4.20.0050.0184.85
4.4.10.0030.0204.85
4.4.00.0030.0254.76
4.3.110.0020.0194.67
4.3.100.0030.0164.66
4.3.90.0030.0174.63
4.3.80.0030.0324.59
4.3.70.0050.0154.63
4.3.60.0010.0164.63
4.3.50.0050.0164.63
4.3.40.0070.0224.54
4.3.30.0030.0163.29
4.3.20.0020.0163.26
4.3.10.0020.0153.22
4.3.00.0100.0277.11

preferences:
139.72 ms | 1394 KiB | 7 Q