3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Input {                                       // Reading input file from codeabbey (in this case from 'std' file on my pc)     public $first_line = null;                      // I am using this class in every problem on the site so its more complicated     public $data = null;                            // than required for this problem     public function __construct($input) {           // Puting 1st line (helper) in $firstline and rest of array in $data         $input = file_get_contents($input);         $input = explode("\n", $input);         $this->first_line = $input[0];         array_shift($input);         $this->data = $input;     }     public function toIntegers() {                  // Convert strings from array in integers         $data = $this->data;                        // Didn't use this for this problem         foreach ($data as $key=>$value) {             $data[$key] = (int)$value;         }         $this->data = $data;     } } class Fibonacci {                                   // Creating Fibonacci array and counting steps for problem     private $data;     public $hits = array();     public function __construct($input) {           // Loading input array in class         $this->data = $input;     }     public function createFibonacci($number) {      // Function: Creating fibonacci array until it reaches certain number         $fibonacci = array(0,1);                    // Argument: Limit number up to which array is created         $a = true;                                  // Return:   Fibonacci array         $count = 0;         while ($a) {             $length = count($fibonacci);             $count++;             $fibonacci[] = bcadd($fibonacci[$length-1], $fibonacci[$length-2]);             if ($fibonacci[$length-1] == $number) {                 echo "found match as $count for number $number<br>";                 $this->hits[] = $count;                 $a = false;             }             if ($count > 2000) {                 $a = false;                 echo 'timed! <br>';             }         }     }     public function countIndex() {                  // Function: counting index at which given number occured         foreach ($this->data as $key => $value) {   // Arguments: --             $this->createFibonacci($value);         // Return: index number for each number in array         }     } } $input = new Input('std'); $data = $input->data; $fibonacci = new Fibonacci($data); $fibonacci->countIndex();

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.310.0070.03712.51
5.4.300.0070.03412.51
5.4.290.0030.04012.50
5.4.280.0030.03712.40
5.4.270.0060.03612.40
5.4.260.0050.04212.40
5.4.250.0070.03612.40
5.4.240.0040.03712.40
5.4.230.0070.03912.39
5.4.220.0070.03812.39
5.4.210.0060.03512.39
5.4.200.0060.03712.39
5.4.190.0050.03712.39
5.4.180.0080.03412.39
5.4.170.0050.03712.40
5.4.160.0070.03412.39
5.4.150.0050.03712.39
5.4.140.0080.03412.08
5.4.130.0070.03512.06
5.4.120.0080.03712.03
5.4.110.0020.04112.02
5.4.100.0050.03612.02
5.4.90.0050.03812.02
5.4.80.0080.03412.03
5.4.70.0070.03312.02
5.4.60.0040.03512.02
5.4.50.0050.03612.02
5.4.40.0060.03412.01
5.4.30.0080.03212.00
5.4.20.0050.03512.00
5.4.10.0050.03512.01
5.4.00.0060.03511.50
5.3.280.0070.03812.71
5.3.270.0050.04012.72
5.3.260.0060.03912.72
5.3.250.0030.04112.72
5.3.240.0060.03812.72
5.3.230.0050.03912.71
5.3.220.0050.04512.68
5.3.210.0080.03712.68
5.3.200.0080.03612.68
5.3.190.0040.03912.68
5.3.180.0070.03512.67
5.3.170.0090.03312.67
5.3.160.0090.03212.67
5.3.150.0040.03812.67
5.3.140.0040.03812.66
5.3.130.0060.03812.66
5.3.120.0060.03912.65
5.3.110.0010.04312.66
5.3.100.0100.03512.12
5.3.90.0060.03712.10
5.3.80.0100.03312.09
5.3.70.0050.03712.09
5.3.60.0030.03812.07
5.3.50.0060.03512.02
5.3.40.0050.03712.02
5.3.30.0020.03811.98
5.3.20.0060.03511.75
5.3.10.0040.03611.73
5.3.00.0030.04511.71
5.2.170.0050.0309.22
5.2.160.0060.0279.22
5.2.150.0030.0319.21
5.2.140.0040.0309.21
5.2.130.0030.0309.18
5.2.120.0040.0289.17
5.2.110.0060.0289.19
5.2.100.0050.0279.18
5.2.90.0060.0269.18
5.2.80.0030.0329.18
5.2.70.0030.0329.18
5.2.60.0050.0299.13
5.2.50.0050.0299.10
5.2.40.0050.0319.07
5.2.30.0030.0319.04
5.2.20.0020.0329.04
5.2.10.0090.0248.95
5.2.00.0060.0318.81
5.1.60.0050.0268.09
5.1.50.0010.0288.09
5.1.40.0020.0268.07
5.1.30.0080.0258.41
5.1.20.0040.0308.43
5.1.10.0060.0258.17
5.1.00.0040.0268.16
5.0.50.0030.0216.64
5.0.40.0030.0206.50
5.0.30.0030.0326.31
5.0.20.0020.0216.27
5.0.10.0020.0216.26
5.0.00.0030.0316.25
4.4.90.0040.0154.78
4.4.80.0040.0164.75
4.4.70.0030.0194.75
4.4.60.0040.0144.75
4.4.50.0020.0164.77
4.4.40.0030.0254.71
4.4.30.0060.0124.76
4.4.20.0020.0164.84
4.4.10.0020.0164.85
4.4.00.0030.0264.76
4.3.110.0020.0174.67
4.3.100.0040.0144.66
4.3.90.0040.0144.63
4.3.80.0020.0254.58
4.3.70.0040.0134.63
4.3.60.0030.0144.63
4.3.50.0010.0174.63
4.3.40.0030.0244.54
4.3.30.0030.0153.30
4.3.20.0010.0183.28
4.3.10.0020.0183.24
4.3.00.0030.01715.17

preferences:
136.66 ms | 1386 KiB | 7 Q