node-murmurhash
Advanced tools
Comparing version
2.0.1 / 2015-07-21 | ||
================== | ||
* remove `& 0xff` when retrive byte (@alsotang) | ||
* simple benchmark. clean code. | ||
2.0.0 / 2015-04-20 | ||
@@ -3,0 +9,0 @@ ================== |
@@ -22,3 +22,3 @@ /**! | ||
// @zhangzifa: 大于127的数, 在c里面的负数, 表示成0xffffffxx才成 | ||
// @zhangzifa: c语言中,大于127的char, 在转成 int 时, 表示成0xffffffxx的形式 | ||
var NEGTIVE_MAP = [ | ||
@@ -61,17 +61,17 @@ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, | ||
function murmurhash2js(key, seed) { | ||
if (typeof seed !== 'number') { | ||
seed = 97; | ||
} | ||
var l = key.length; | ||
var h = seed ^ l; | ||
var i = 0; | ||
var k = null; | ||
var k = 0; | ||
while (l >= 4) { | ||
k = ((key[i] & 0xff)) | | ||
((key[++i] & 0xff) << 8) | | ||
((key[++i] & 0xff) << 16) | | ||
((key[++i] & 0xff) << 24); | ||
k = (key[i] | | ||
(key[i + 1] << 8) | | ||
(key[i + 2] << 16) | | ||
(key[i + 3] << 24)); | ||
// js 中,Number 能表示的最高精度整数是 (2 ** 53 - 1), | ||
// 此处两个 32 位整数相乘时,有可能产生 64 位的结果,导致精度丢失。 | ||
k = (((k & 0xffff) * MURMURHASH_M) + ((((k >>> 16) * MURMURHASH_M) & 0xffff) << 16)); | ||
k ^= k >>> 24; | ||
@@ -83,3 +83,3 @@ k = (((k & 0xffff) * MURMURHASH_M) + ((((k >>> 16) * MURMURHASH_M) & 0xffff) << 16)); | ||
l -= 4; | ||
++i; | ||
i += 4; | ||
} | ||
@@ -86,0 +86,0 @@ |
{ | ||
"name": "node-murmurhash", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "murmurhash V2, support utf8 Buffer", | ||
@@ -5,0 +5,0 @@ "main": "lib/murmurhash.js", |
@@ -45,6 +45,16 @@ node-murmurhash | ||
@see [benchmark.md](benchmark.md) | ||
``` | ||
cpu: 1.4 GHz Intel Core i5 | ||
node version: v2.3.0, date: Tue Jul 21 2015 17:35:09 GMT+0800 (CST) | ||
Starting... | ||
2 tests completed. | ||
murmurhash(new Buffer('haha, this is key')) x 6,626,182 ops/sec ±1.89% (80 runs sampled) | ||
murmurhash(new Buffer('hello 中国')) x 8,510,543 ops/sec ±2.24% (80 runs sampled) | ||
``` | ||
see also: [benchmark.md](benchmark.md) | ||
## License | ||
[MIT](LICENSE.txt) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
10255
5.71%60
20%0
-100%117
-0.85%