3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = 'payload'; $key = 'secret_salt'; $sha256_binary = hash('sha256', $data, TRUE); $sha256 = hash('sha256', $data); $md5_binary = hash('md5', $data, TRUE); $md5 = hash('md5', $data); $base64_sha256_binary = base64_encode($sha256_binary); $base64_sha256 = base64_encode($sha256); $drupal_hmac_base64 = str_replace(['+', '/', '='], ['-', '_', ''], $base64_sha256_binary); $sha256_binary_md5 = hash('md5', $sha256_binary); $hash_hmac_sha256 = hash_hmac('sha256', $data, $key); $hash_hmac_sha256_binary = hash_hmac('sha256', $data, $key, TRUE); $xxh64_hash_hmac_sha256 = hash('xxh64', $hash_hmac_sha256); $xxh64_hash_hmac_sha256_binary = hash('xxh64', $hash_hmac_sha256_binary); var_dump([ 'data' => $data, 'sha256_binary' => $sha256_binary, 'sha256' => $sha256, 'md5_binary' => $md5_binary, 'md5' => $md5, 'base64_sha256_binary' => $base64_sha256_binary, 'base64_sha256' => $base64_sha256, 'sha256_binary_md5' => $sha256_binary_md5, 'sha256_binary_bin2hex' => bin2hex($sha256_binary), 'hash_hmac_sha256' => $hash_hmac_sha256, 'hash_hmac_sha256_binary' => $hash_hmac_sha256_binary, 'xxh64_hash_hmac_sha256' => $xxh64_hash_hmac_sha256, 'xxh64_hash_hmac_sha256_binary' => $xxh64_hash_hmac_sha256_binary, 'drupal_hmac_base64' => $drupal_hmac_base64, 'drupal_hmac_base64_md5' => md5($drupal_hmac_base64), ]);

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.4.120.0140.00620.71
8.4.110.0100.00222.44
8.4.100.0120.00917.90
8.4.90.0100.00917.77
8.4.80.0090.01217.70
8.4.70.0120.00817.87
8.4.60.0120.00918.92
8.4.50.0110.01117.88
8.4.40.0460.00917.55
8.4.30.0390.00917.41
8.4.20.0380.01017.36
8.4.10.0360.01217.33
8.3.250.0110.00819.11
8.3.240.0070.00917.01
8.3.230.0100.00916.76
8.3.220.0130.00617.09
8.3.210.0030.00616.48
8.3.200.0050.00416.66
8.3.190.0110.00916.59
8.3.180.0110.00816.43
8.3.170.0360.00916.57
8.3.160.0390.00816.85
8.3.150.0350.01116.89
8.3.140.0250.00616.64
8.3.130.0180.00416.45
8.3.120.0340.00716.66
8.3.110.0310.01016.54
8.3.100.0380.00916.55
8.3.90.0390.00716.41
8.3.80.0370.00916.51
8.3.70.0330.01316.38
8.3.60.0340.01216.35
8.3.50.0410.00716.64
8.3.40.0360.00517.30
8.3.30.0270.00917.45
8.3.20.0270.01017.51
8.3.10.0300.00717.36
8.3.00.0130.01017.20
8.2.290.0090.00920.48
8.2.280.0070.00816.63
8.2.270.0300.00916.36
8.2.260.0300.00816.19
8.2.250.0300.00916.57
8.2.240.0330.00716.33
8.2.230.0320.00816.29
8.2.220.0320.00716.34
8.2.210.0290.01116.36
8.2.200.0310.01516.48
8.2.190.0350.00516.40
8.2.180.0310.00716.14
8.2.170.0410.00817.61
8.2.160.0330.01417.29
8.2.150.0310.00617.53
8.2.140.0200.00417.64
8.2.130.0210.00917.59
8.2.120.0290.00617.43
8.2.110.0370.01017.41
8.2.100.0320.00917.38
8.2.90.0310.00917.59
8.2.80.0320.00617.39
8.2.70.0210.00417.55
8.2.60.0300.01017.23
8.2.50.0310.00817.37
8.2.40.0290.00817.60
8.2.30.0310.00617.55
8.2.20.0340.00717.27
8.2.10.0300.00817.57
8.2.00.0300.00817.27
8.1.320.0110.00916.00

preferences:
28.29 ms | 403 KiB | 5 Q