Skip to content

Instantly share code, notes, and snippets.

@montanaflynn
Last active March 18, 2016 00:40
Show Gist options
  • Save montanaflynn/4c32446d2ba8a159f2fe to your computer and use it in GitHub Desktop.
Save montanaflynn/4c32446d2ba8a159f2fe to your computer and use it in GitHub Desktop.
Testing different packages MD5 hashing performance in node.js
var mhash = require("mhash").hash
var md5 = require("md5")
var crypto = require('crypto')
var packages = ['mhash','md5','crypto']
md5benchmark(packages)
function md5benchmark(packages) {
var max = 100000
var module = packages[0]
packages.shift()
var start = new Date().getTime()
var count = 0
while (count < max) {
var string = "testing"+count++
switch(module) {
case 'mhash':
var hash = mhash('md5', string)
break;
case 'md5':
var hash = md5(string)
break;
case 'crypto':
var hash = crypto.createHash('md5').update(string).digest('hex')
break;
}
if (count === max){
var end = new Date().getTime()
var elapsed = (end - start) + "ms"
console.log('Finished ' + max + ' md5 hashes in '+ elapsed + ' using ' + module)
}
if (packages.length) {
md5benchmark(packages)
}
}
}
@montanaflynn
Copy link
Author

Results on my MacBook Pro (Late 2013, 2.3 GHz Intel Core i7, 16 GB 1600 MHz DDR3)

Finished 100000 md5 hashes in 222ms using crypto
Finished 100000 md5 hashes in 1082ms using md5
Finished 100000 md5 hashes in 1350ms using mhash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment