3v4l.org

run code in 300+ PHP versions simultaneously
<?php function rpi_getRpiRevision($match) { $revision = array(); $revision[2] = array('revision' => '0002', 'model' => 'B', 'pcb' => '1.0', 'memory' => 256, 'manufacturer' => ''); $revision[3] = array('revision' => '0003', 'model' => 'B', 'pcb' => '1.0', 'memory' => 256, 'manufacturer' => ''); $revision[4] = array('revision' => '0004', 'model' => 'B', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Sony'); $revision[5] = array('revision' => '0005', 'model' => 'B', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Qisda'); $revision[6] = array('revision' => '0006', 'model' => 'B', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Egoman'); $revision[7] = array('revision' => '0007', 'model' => 'A', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Egoman'); $revision[8] = array('revision' => '0008', 'model' => 'A', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Sony'); $revision[9] = array('revision' => '0009', 'model' => 'A', 'pcb' => '2.0', 'memory' => 256, 'manufacturer' => 'Qisda'); $revision[13] = array('revision' => '000d', 'model' => 'B', 'pcb' => '2.0', 'memory' => 512, 'manufacturer' => 'Egoman'); $revision[14] = array('revision' => '000e', 'model' => 'B', 'pcb' => '2.0', 'memory' => 512, 'manufacturer' => 'Sony'); $revision[15] = array('revision' => '000f', 'model' => 'B', 'pcb' => '2.0', 'memory' => 512, 'manufacturer' => 'Qisda'); $revision[16] = array('revision' => '0010', 'model' => 'B+', 'pcb' => '1.0', 'memory' => 512, 'manufacturer' => 'Sony'); $revision[17] = array('revision' => '0011', 'model' => 'Compute Module', 'pcb' => '1.0', 'memory' => 512, 'manufacturer' => 'Sony'); $revision[18] = array('revision' => '0012', 'model' => 'A+', 'pcb' => '1.0', 'memory' => 256, 'manufacturer' => 'Sony'); $revision[19] = array('revision' => '0013', 'model' => 'B+', 'pcb' => '1.2', 'memory' => 512, 'manufacturer' => 'Embest'); $revision[20] = array('revision' => '0014', 'model' => 'Compute Module', 'pcb' => '1.0', 'memory' => 512, 'manufacturer' => 'Embest'); $revision[21] = array('revision' => '0015', 'model' => 'A+', 'pcb' => '1.1', 'memory' => 256, 'manufacturer' => 'Embest'); $revision_model = array(0 => 'A', 1 => 'B', 2 => 'A+', 3 => 'B+', 4 => 'Pi 2 B', 5 => 'Alpha', 6 => 'Compute Module', 7 => 'Zero', 8 => 'Pi 3 B', 9 => 'Zero', 10 => 'Compute Module 3'); $revision_memory = array(0 => 256, 1 => 512, 2 => 1024); $revision_manufacturer = array(0 => 'Sony', 1 => 'Egoman', 2 => 'Embest', 3 => 'Sony Japan', 4 => 'Embest'); /* * ###### * |||||+- PCB * ||||+- Model * |||+- Model * ||+- Unknown * |+- Manufacturer * +- Memory */ if (isset($match[1])) { if ($match[1][0] == '1' || $match[1][0] == '2') $match[1] = substr($match[1], 1); if (strlen($match[1]) == 4) return $revision[hexdec($match[1])]; elseif (strlen($match[1]) == 6 && $match[1][0] != 'a' && $match[1][0] != '9') return $revision[hexdec(substr($match[1], -4))]; elseif (strlen($match[1]) == 6) { return array('revision' => $match[1], 'model' => $revision_model[hexdec(substr($match[1], 3, 2))], 'pcb' => '1.'.hexdec(substr($match[1], -1)), 'memory' => $revision_memory[bindec(substr(decbin(hexdec(substr($match[1], 0, 1))), 1))], 'manufacturer' => $revision_manufacturer[hexdec(substr($match[1], 1, 1))]); } } return NULL; } var_dump(rpi_getRpiRevision('a020a0'));

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)
8.3.60.0180.00416.88
8.3.50.0120.00316.39
8.3.40.0150.00618.92
8.3.30.0120.00318.63
8.3.20.0040.00420.34
8.3.10.0000.00821.99
8.3.00.0040.00417.80
8.2.180.0060.01216.35
8.2.170.0090.00622.96
8.2.160.0070.00720.36
8.2.150.0040.00424.18
8.2.140.0040.00424.66
8.2.130.0080.00019.20
8.2.120.0050.00326.35
8.2.110.0030.00619.36
8.2.100.0090.00318.30
8.2.90.0040.00419.14
8.2.80.0000.00918.04
8.2.70.0070.00317.50
8.2.60.0080.00018.16
8.2.50.0090.00018.10
8.2.40.0040.00420.72
8.2.30.0040.00419.27
8.2.20.0030.00518.25
8.2.10.0040.00418.25
8.2.00.0070.00018.07
8.1.280.0080.00625.92
8.1.270.0040.00422.07
8.1.260.0050.00326.35
8.1.250.0050.00328.09
8.1.240.0090.00022.59
8.1.230.0130.00017.58
8.1.220.0000.00917.88
8.1.210.0040.00418.77
8.1.200.0000.00917.38
8.1.190.0080.00017.48
8.1.180.0040.00418.10
8.1.170.0030.00518.62
8.1.160.0000.00719.12
8.1.150.0040.00420.73
8.1.140.0030.00519.66
8.1.130.0030.00318.97
8.1.120.0030.00617.51
8.1.110.0040.00417.46
8.1.100.0090.00017.45
8.1.90.0000.01117.49
8.1.80.0000.00817.58
8.1.70.0030.00317.58
8.1.60.0030.00617.69
8.1.50.0080.00017.48
8.1.40.0030.00617.63
8.1.30.0080.00017.67
8.1.20.0040.00817.77
8.1.10.0040.00417.72
8.1.00.0000.00717.65
8.0.300.0040.00418.77
8.0.290.0040.00416.75
8.0.280.0070.00018.44
8.0.270.0050.00317.21
8.0.260.0040.00416.91
8.0.250.0070.00016.93
8.0.240.0050.00317.10
8.0.230.0000.00716.99
8.0.220.0000.00716.96
8.0.210.0030.00316.95
8.0.200.0000.00816.90
8.0.190.0050.00316.96
8.0.180.0000.00716.90
8.0.170.0000.00716.91
8.0.160.0040.00417.07
8.0.150.0000.00817.04
8.0.140.0070.00016.94
8.0.130.0060.00013.32
8.0.120.0030.00516.84
8.0.110.0030.00516.86
8.0.100.0040.00417.00
8.0.90.0000.00716.98
8.0.80.0050.01117.04
8.0.70.0040.00416.86
8.0.60.0000.00816.93
8.0.50.0000.00716.98
8.0.30.0080.00717.31
8.0.20.0120.00717.40
8.0.10.0050.00217.08
8.0.00.0090.00916.86
7.4.330.0030.00315.55
7.4.320.0030.00316.60
7.4.300.0030.00316.48
7.4.290.0030.00316.68
7.4.280.0000.00716.59
7.4.270.0030.00316.72
7.4.260.0000.00613.35
7.4.250.0070.00016.63
7.4.240.0070.00016.67
7.4.230.0070.00016.76
7.4.220.0080.01516.60
7.4.210.0090.00916.74
7.4.200.0040.00416.76
7.4.160.0100.00616.46
7.4.150.0060.01217.40
7.4.140.0150.01017.86
7.4.130.0120.00616.47
7.4.120.0110.00916.59
7.3.330.0000.00513.47
7.3.320.0000.00613.28
7.3.310.0070.00016.26
7.3.300.0040.00416.33
7.3.290.0030.00316.46
7.3.280.0090.00716.42
7.3.270.0070.01017.40
7.3.260.0090.00816.38
7.3.250.0120.00516.38
7.3.240.0110.00716.68
7.0.200.0040.00716.90

preferences:
52.48 ms | 401 KiB | 5 Q