recursionmd5散列基准函数返回高度变化的延迟
考虑下面的NodeJS程序。
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)
它会创build一个10000字节的新string缓冲区,并将其与迭代值相关联,然后计算缓冲区的md5总和,并logging完成时的已用时间。
当我运行这个程序的时候,每次运行的时候,我都会得到200ms和600ms之间差别很大的结果。
这里发生了什么?
创build一个缓冲区并调用toString()
将成为该延迟的一部分。 所以你的时间不仅仅是在那里哈希。 将缓冲区创build和toString()
从等式中取出,您将获得更加准确和精确的读数。