3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Funkcja dokonuje normalizacji danych (oś Y) na podstawie współczynnika $max * * @param array $tab - tablica, której dane podlegają normalizacji, * @param float $max - maksymalna dopuszczalna wartość, * @return nowy współczynnik, który przez który należy podzielić wszystkie wartości funkcji zapisanej w tablicy * aby dokonać normalizacji, jeśli wartości mieszczą się w podanym zakresie, to wartości nie * są poddawane normalizacji */ function normalize($tab,$max) { $wsp=0.0; for ($a=0,$b=count($tab);$a<$b;$a++) { if (abs($tab[$a][1])>abs($wsp)) $wsp==abs($tab[$a][1]); } if ($wsp>$max) return $max/$wsp; else return 1.0; } /** * Funkcja dokonuje normalizacji * * @param $tab - tablica z danymi * @param $wsp - współczynnik normalizacji * @param $new_x - przesunięcie początku osi współrzędnych X do pozycji new_x * @param $new_y - przesunięcie początku osi współrzędnych Y do pozycji new_y * @return $tab - tablica z nowymi danymi */ function calculate($tab,$wsp,$new_x,$new_y) { for ($a=0,$b=count($tab);$a<b;$a++) { $tab[$a][0]+=$new_x; $tab[$a][1]=(float)$tab[$a][0]/(float)$wsp+$new_y; } return $tab; } function draw($tab) { $img = imagecreate(800,400); imagecolorallocate($img,230,230,230); $col2 = imagecolorallocate($img,0,255,0); $col3 = imagecolorallocate($img,0,0,0); for ($a=0,$b==count($tab);$a<$b;$a++) { for ($a2=0,$b2==count($tab[$a]);$a2<$b2;$a2+=2) { $x=$tab[$a][$a2]; $y=$tab[$a][$a2+1]; echo 'X:' . $x; echo 'Y:' . $y; echo PHP_EOL; //imagesetpixel($img,$x,$y,$col2); } //header('Content-type: image/jpeg'); //echo imagejpeg($img); } } for ($pos=0;$pos<3600;$pos++) $tab2[] = array($pos,200*sin(pi()*$pos / 180)); $tab2 = calculate($tab2,normalize($tab2,100),80,200); draw($tab2); ?>

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.0100.01318.13
8.3.50.0120.00320.25
8.3.40.0060.01019.88
8.3.30.0120.00420.23
8.3.20.0060.00322.85
8.3.10.0080.00024.03
8.3.00.0060.00322.87
8.2.180.0130.01017.59
8.2.170.0160.00322.96
8.2.160.0090.00921.69
8.2.150.0060.00324.18
8.2.140.0130.00324.66
8.2.130.0030.00622.45
8.2.120.0090.00026.35
8.2.110.0030.00922.64
8.2.100.0060.00619.28
8.2.90.0030.00620.30
8.2.80.0000.00918.75
8.2.70.0060.00318.75
8.2.60.0000.00919.05
8.2.50.0070.00319.00
8.2.40.0130.00019.28
8.2.30.0030.00619.45
8.2.20.0060.00319.27
8.2.10.0050.00319.29
8.2.00.0000.00819.29
8.1.280.0160.00625.92
8.1.270.0090.00023.68
8.1.260.0000.00826.35
8.1.250.0090.00028.09
8.1.240.0080.00423.76
8.1.230.0060.00619.39
8.1.220.0040.00419.41
8.1.210.0000.01018.98
8.1.200.0040.00719.10
8.1.190.0030.00619.11
8.1.180.0060.00318.98
8.1.170.0060.00620.23
8.1.160.0060.00320.54
8.1.150.0030.00620.61
8.1.140.0040.00420.73
8.1.130.0000.00821.03
8.1.120.0000.00819.11
8.1.110.0030.00919.12
8.1.100.0060.00319.29
8.1.90.0030.00519.27
8.1.80.0060.00319.18
8.1.70.0040.00419.15
8.1.60.0090.00019.28
8.1.50.0030.00619.13
8.1.40.0030.00619.20
8.1.30.0030.00619.34
8.1.20.0000.00919.44
8.1.10.0060.00319.29
8.1.00.0000.01019.27
8.0.300.0090.00018.77
8.0.290.0100.00018.50
8.0.280.0030.00620.08
8.0.270.0060.00619.07
8.0.260.0070.00318.54
8.0.250.0050.00318.72
8.0.240.0060.00318.68
8.0.230.0030.00618.74
8.0.220.0060.00318.69
8.0.210.0000.00818.72
8.0.200.0030.00618.78
8.0.190.0030.00618.70
8.0.180.0040.00418.82
8.0.170.0000.00918.62
8.0.160.0000.01018.73
8.0.150.0030.00518.61
8.0.140.0090.00018.66
8.0.130.0030.00315.15
8.0.120.0030.00718.63
8.0.110.0040.00418.65
8.0.100.0000.00818.50
8.0.90.0030.00618.75
8.0.80.0030.01618.59
8.0.70.0000.01018.52
8.0.60.0030.00618.52
8.0.50.0090.00018.55
8.0.30.0160.00818.68
8.0.20.0150.01018.77
8.0.10.0050.00518.83
8.0.00.0100.01018.40
7.4.330.0000.00516.71
7.4.320.0040.00418.28
7.4.300.0050.00318.27
7.4.290.0000.00818.31
7.4.280.0070.00418.28
7.4.270.0030.00718.35
7.4.260.0030.00718.24
7.4.250.0070.00318.32
7.4.240.0040.00418.41
7.4.230.0030.00518.34
7.4.220.0070.00318.35
7.4.210.0020.01618.16
7.4.200.0080.00018.34
7.4.160.0100.00818.21
7.4.150.0180.00318.05
7.4.140.0140.01118.12
7.4.130.0160.00418.21
7.4.120.0110.01518.23
7.4.110.0100.01018.14
7.4.100.0160.00318.28
7.4.90.0130.01018.00
7.4.80.0160.00319.39
7.4.70.0110.00918.29
7.4.60.0030.01518.09
7.4.50.0030.01118.27
7.4.40.0150.00918.11
7.4.30.0090.00918.22
7.4.00.0090.00916.93
7.3.330.0030.00315.12
7.3.320.0030.00315.05
7.3.310.0030.00618.02
7.3.300.0000.00818.13
7.3.290.0000.00918.20
7.3.280.0080.01218.06
7.3.270.0160.00818.11
7.3.260.0100.00918.19
7.3.250.0200.01218.13
7.3.240.0090.01218.12
7.3.230.0060.01517.93
7.3.210.0090.01018.15
7.3.200.0140.01118.17
7.3.190.0110.01418.13
7.3.180.0100.01018.14
7.3.170.0060.01418.04
7.3.160.0030.01618.21
7.2.330.0100.01418.40
7.2.320.0140.01418.37
7.2.310.0080.01118.19
7.2.300.0150.00618.40
7.2.290.0120.00618.16
7.2.60.0090.00617.23
7.2.00.0100.00620.26
7.1.200.0030.00915.98
7.1.120.0040.01119.16
7.1.110.0070.00718.25
7.1.100.0070.01018.62
7.1.90.0120.00318.15
7.1.80.0100.01018.51
7.1.70.0100.00717.51
7.1.60.0230.01335.50
7.1.50.0130.01635.25
7.1.40.0210.02134.77
7.1.30.0120.01834.85
7.1.20.0210.00734.88
7.1.10.0090.01216.92
7.1.00.0040.01116.96

preferences:
58.65 ms | 401 KiB | 5 Q