xref: /PHP-5.5/ext/hash/bench.php (revision 950de078)
1<?php
2/* $Id$ */
3
4/*
5 This gives rather interesting results :)
6
7 Measures on a Notebook P4M-1.7 256MB Windows 2000:
8	sha1         0.556691
9	tiger160,3   0.774469
10	tiger192,3   0.776314
11	tiger128,3   0.777004
12	ripemd128    0.896674
13	sha256       1.011164
14	md5          1.016032
15	tiger160,4   1.056617
16	tiger128,4   1.063101
17	tiger192,4   1.069258
18	haval160,3   1.125099
19	haval128,3   1.125679
20	haval224,3   1.128017
21	haval192,3   1.130026
22	haval256,3   1.134846
23	ripemd160    1.150693
24	haval128,4   1.686261
25	haval192,4   1.687274
26	haval160,4   1.693091
27	haval256,4   1.699323
28	haval224,4   1.743094
29	haval160,5   2.003452
30	haval192,5   2.008341
31	haval256,5   2.009048
32	haval128,5   2.009555
33	haval224,5   2.015539
34	sha384       3.370734
35	sha512       3.381121
36	whirlpool    6.912327
37	snefru       9.268168
38
39 Measures on a Desktop P4-2.4 512MB Debian (Linux-2.4):
40	md5          0.147739
41	haval128,3   0.317006
42	haval192,3   0.317524
43	haval256,3   0.317526
44	haval160,3   0.323035
45	haval224,3   0.333318
46	ripemd128    0.353447
47	sha1         0.376200
48	ripemd160    0.413758
49	sha256       0.435957
50	haval160,4   0.452357
51	haval224,4   0.454531
52	haval128,4   0.458026
53	haval256,4   0.459051
54	haval192,4   0.468094
55	haval128,5   0.524262
56	haval160,5   0.529573
57	haval224,5   0.533655
58	haval256,5   0.534446
59	haval192,5   0.543726
60	tiger128,3   0.577975
61	tiger160,3   0.579951
62	tiger192,3   0.597111
63	tiger192,4   0.781408
64	tiger160,4   0.801243
65	tiger128,4   0.812239
66	sha512       1.298627
67	sha384       1.313607
68	whirlpool    1.556159
69	snefru       5.703742
70
71*/
72
73error_reporting(E_ALL&~E_NOTICE);
74
75$data = file_get_contents(__FILE__);
76$time = array();
77
78for ($j = 0; $j < 10; $j++) {
79	foreach (hash_algos() as $algo) {
80		$start = microtime(true);
81		for ($i = 0; $i < 1000; $i++) {
82			hash($algo, $data);
83		}
84		$time[$algo] += microtime(true)-$start;
85	}
86}
87
88asort($time, SORT_NUMERIC);
89foreach ($time as $a => $t) {
90	printf("%-12s %02.6f\n", $a, $t);
91}
92?>
93