var crypto = require('crypto');
var overall = new Date().getMilliseconds();
var hashme = function myself(times){
times--;
if(times > 0){
var name = new Buffer(100000).toString('utf8') + times;
var hash = crypto.createHash('md5').update(name).digest("hex");
console.log(hash);
myself(times)
}
else{
return console.log('Finished in ' + (new Date().getMilliseconds() - overall) + 'ms.')
}
}
hashme(400)
它创建一个10000字节的新字符串缓冲区,将其与迭代值一起使用,然后计算缓冲区的md5总和,并记录完成后经过的时间。
当我运行程序时,每次运行时,我会在200ms到600ms之间得到截然不同的结果。
这里发生了什么?
答案 0 :(得分:1)
创建缓冲区并调用toString()
将成为延迟的一部分。因此,您不仅仅需要在那里进行哈希计时。将缓冲区创建和toString()
排除在等式之外,您将获得更加准确和精确的读数。