Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!
RSS

Hash functions benchmark (javascript)

Autor: Foxbond | Dodano: wrz 22 2013

Test funkcji hashujących opierający się na kodzie napisanym w javascripcie uruchomionym w konsoli node.js

Wyniki:

>node data/benchmark/hash.js

md5 x 62,315 ops/sec +0.40% (101 runs sampled)
sha1 x 143,658 ops/sec +0.31% (99 runs sampled)
murmurhash3 x 2,234,721 ops/sec +0.32% (97 runs sampled)
sha256 x 239,232 ops/sec +2.97% (86 runs sampled)
xxhash x 206,667 ops/sec +3.50% (91 runs sampled)
Fastest is murmurhash3

 

Kod testera: (wymaga biblioteki crypto, xxhash i benchmark)

npm install crypto

npm install xxhash

npm install benchmark

/**
 * Hash functions benchmark (javascript)
 * @author Michał (foxbond) Chraniuk
 *
 * funkcje {md5,sha1,sha256} to najprostsze użycie biblioteki crypto
 * funkcja xxhash pochodzi z biblioteki xxhash wymienionej na oficjalnej stronie tegoż algorytmu
* funkcja murmurhash3 to przepisanie słowo w słowo z implementacji C
*/
var b = require('benchmark');
var crypto = require('crypto');
var xxh = require('xxhash');
var suite = new b.Suite;
// add tests
suite.add('md5', function() {
md5('qwertyuiop[]asdfghjkl;zxcvbnm,1234567890-=');
})
.add('sha1', function() {
sha1('qwertyuiop[]asdfghjkl;zxcvbnm,1234567890-=');
})
.add('murmurhash3', function() {
murmurhash3('qwertyuiop[]asdfghjkl;zxcvbnm,1234567890-=', 123);
})
.add('sha256', function() {
sha256('qwertyuiop[]asdfghjkl;zxcvbnm,1234567890-=', 123);
})
.add('xxhash', function() {
xxhash('qwertyuiop[]asdfghjkl;zxcvbnm,1234567890-=', 123);
})
// add listeners
.on('cycle', function(event) {
console.log(String(event.target));
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').pluck('name'));
})
// run async
.run({ 'async': true });

Post a Comment


jeden × 8 =