<?php
function micro_parse($a) {
$parts = explode(' ', $a);
return [
(int)$parts[1],
(int)substr($parts[0], 2, 6)
];
}
function micro_diff($a, $b) {
return [ $b[0] - $a[0], $b[1] - $a[1] ];
}
function micro_fmt($a) {
return sprintf('%d.%06d', $a[0], $a[1]);
}
$str = 'foobar';
$iter = 100000;
$algos = ['md5', 'fnv1a32', 'fnv1a64'];
foreach($algos as $algo) {
$start = microtime();
for( $i=0; $i<$iter; $i++ ) {
$h = hash($algo, $str);
}
$end = microtime();
printf("%8s: %s\n", $algo, micro_fmt(micro_diff(micro_parse($start), micro_parse($end))));
}
- Output for 7.3.12
- md5: 0.033655
fnv1a32: 0.018830
fnv1a64: 0.020219
- Output for 7.3.11
- md5: 0.033371
fnv1a32: 0.015673
fnv1a64: 0.016468
- Output for 7.3.10
- md5: 0.031680
fnv1a32: 0.016073
fnv1a64: 0.016678
- Output for 7.3.9
- md5: 0.032308
fnv1a32: 0.017178
fnv1a64: 0.017989
- Output for 7.3.8
- md5: 0.029723
fnv1a32: 0.016935
fnv1a64: 0.017202
- Output for 7.3.7
- md5: 0.034248
fnv1a32: 0.018560
fnv1a64: 0.019065
- Output for 7.3.6
- md5: 0.034365
fnv1a32: 0.019170
fnv1a64: 0.019113
- Output for 7.3.5
- md5: 0.031950
fnv1a32: 0.016459
fnv1a64: 0.016877
- Output for 7.3.4
- md5: 0.030931
fnv1a32: 0.015879
fnv1a64: 0.016464
- Output for 7.3.3
- md5: 0.031212
fnv1a32: 0.015922
fnv1a64: 0.016656
- Output for 7.3.2
- md5: 0.031087
fnv1a32: 0.016362
fnv1a64: 0.017026
- Output for 7.3.1
- md5: 1.-969460
fnv1a32: 0.016111
fnv1a64: 0.016915
- Output for 7.3.0
- md5: 0.034153
fnv1a32: 0.018948
fnv1a64: 0.019373
- Output for 7.2.24
- md5: 0.030894
fnv1a32: 0.015914
fnv1a64: 0.016360
- Output for 7.2.23
- md5: 0.032235
fnv1a32: 0.017149
fnv1a64: 0.017374
- Output for 7.2.22
- md5: 0.033967
fnv1a32: 0.018906
fnv1a64: 0.019896
- Output for 7.2.21
- md5: 0.031822
fnv1a32: 0.017537
fnv1a64: 0.018167
- Output for 7.2.20
- md5: 0.031983
fnv1a32: 0.017218
fnv1a64: 0.017458
- Output for 7.2.19
- md5: 0.030492
fnv1a32: 0.016430
fnv1a64: 0.016770
- Output for 7.2.18
- md5: 0.035273
fnv1a32: 0.019499
fnv1a64: 0.020001
- Output for 7.2.17
- md5: 0.032182
fnv1a32: 0.016540
fnv1a64: 0.017257
- Output for 7.2.16
- md5: 0.032922
fnv1a32: 0.016032
fnv1a64: 0.016672
- Output for 7.2.15
- md5: 0.033655
fnv1a32: 0.016843
fnv1a64: 0.017965
- Output for 7.2.14
- md5: 0.034097
fnv1a32: 0.019207
fnv1a64: 0.019705
- Output for 7.2.13
- md5: 0.030193
fnv1a32: 0.016547
fnv1a64: 0.017228
- Output for 7.2.12
- md5: 0.030877
fnv1a32: 0.016426
fnv1a64: 0.016721
- Output for 7.2.11
- md5: 0.030148
fnv1a32: 0.015993
fnv1a64: 0.017105
- Output for 7.2.10
- md5: 0.030450
fnv1a32: 0.016239
fnv1a64: 0.017414
- Output for 7.2.9
- md5: 0.030978
fnv1a32: 0.016381
fnv1a64: 0.016892
- Output for 7.2.8
- md5: 0.031029
fnv1a32: 0.016889
fnv1a64: 0.017444
- Output for 7.2.7
- md5: 0.031210
fnv1a32: 0.017337
fnv1a64: 0.017973
- Output for 7.2.6
- md5: 0.034535
fnv1a32: 0.019087
fnv1a64: 0.019953
- Output for 7.2.5
- md5: 0.036542
fnv1a32: 0.019473
fnv1a64: 0.019710
- Output for 7.2.4
- md5: 0.030451
fnv1a32: 0.017154
fnv1a64: 0.018127
- Output for 7.2.3
- md5: 0.036750
fnv1a32: 0.019317
fnv1a64: 0.020020
- Output for 7.2.2
- md5: 0.030576
fnv1a32: 0.016714
fnv1a64: 0.017038
- Output for 7.2.1
- md5: 0.035270
fnv1a32: 0.019838
fnv1a64: 0.019801
- Output for 7.2.0
- md5: 0.032956
fnv1a32: 0.016186
fnv1a64: 0.016674
- Output for 7.1.33
- md5: 0.037351
fnv1a32: 0.022438
fnv1a64: 0.023130
- Output for 7.1.32
- md5: 0.036826
fnv1a32: 0.022383
fnv1a64: 0.023929
- Output for 7.1.31
- md5: 0.035940
fnv1a32: 0.021850
fnv1a64: 0.022708
- Output for 7.1.30
- md5: 0.039472
fnv1a32: 1.-974811
fnv1a64: 0.024842
- Output for 7.1.29
- md5: 0.040855
fnv1a32: 0.025737
fnv1a64: 0.026059
- Output for 7.1.28
- md5: 0.038607
fnv1a32: 0.021407
fnv1a64: 0.021929
- Output for 7.1.27
- md5: 0.037585
fnv1a32: 0.021881
fnv1a64: 0.022886
- Output for 7.1.26
- md5: 0.039924
fnv1a32: 0.024395
fnv1a64: 0.025337
- Output for 7.1.25
- md5: 0.038899
fnv1a32: 0.021891
fnv1a64: 0.022654
- Output for 7.1.21
- md5: 0.045963
fnv1a32: 0.016368
fnv1a64: 0.017286
- Output for 7.1.20
- md5: 0.048888
fnv1a32: 0.031733
fnv1a64: 0.030187
- Output for 7.1.19
- md5: 0.031650
fnv1a32: 0.014651
fnv1a64: 0.015565
- Output for 7.1.18
- md5: 0.033046
fnv1a32: 0.015596
fnv1a64: 0.015888
- Output for 7.1.17
- md5: 0.032265
fnv1a32: 0.016426
fnv1a64: 0.016456
- Output for 7.1.16
- md5: 0.030218
fnv1a32: 0.014316
fnv1a64: 0.014992
- Output for 7.1.15
- md5: 0.031032
fnv1a32: 0.014752
fnv1a64: 0.015339
- Output for 7.1.14
- md5: 0.034890
fnv1a32: 0.014529
fnv1a64: 0.014441
- Output for 7.1.13
- md5: 0.029761
fnv1a32: 0.013374
fnv1a64: 0.014191
- Output for 7.1.12
- md5: 0.029915
fnv1a32: 0.014283
fnv1a64: 0.014842
- Output for 7.1.11
- md5: 0.034545
fnv1a32: 0.014607
fnv1a64: 0.014751
- Output for 7.1.10
- md5: 0.030496
fnv1a32: 0.015989
fnv1a64: 0.014413
- Output for 7.1.9
- md5: 0.048697
fnv1a32: 0.029460
fnv1a64: 0.031039
- Output for 7.1.8
- md5: 0.031141
fnv1a32: 0.015353
fnv1a64: 0.014654
- Output for 7.1.7
- md5: 0.030210
fnv1a32: 0.013619
fnv1a64: 0.014649
- Output for 7.1.6
- md5: 0.053320
fnv1a32: 0.028017
fnv1a64: 0.029101
- Output for 7.1.5
- md5: 0.048864
fnv1a32: 0.030587
fnv1a64: 0.023791
- Output for 7.1.4
- md5: 0.037939
fnv1a32: 0.016692
fnv1a64: 0.015607
- Output for 7.1.3
- md5: 0.030447
fnv1a32: 0.013922
fnv1a64: 0.015089
- Output for 7.1.2
- md5: 0.045586
fnv1a32: 0.016299
fnv1a64: 0.023988
- Output for 7.1.1
- md5: 0.054984
fnv1a32: 0.033505
fnv1a64: 0.050828
- Output for 7.1.0
- md5: 0.032102
fnv1a32: 0.014175
fnv1a64: 0.015081
preferences:
109.99 ms | 401 KiB | 74 Q