bench.php 1.9 KB

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