From 445e617a7858eda433ec34a4f4a0751586dfd087 Mon Sep 17 00:00:00 2001 From: Jason Davies Date: Tue, 6 Dec 2011 23:46:44 +0000 Subject: [PATCH] Use typed arrays. --- bloomfilter.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bloomfilter.js b/bloomfilter.js index 9bac70b..9d7bd60 100644 --- a/bloomfilter.js +++ b/bloomfilter.js @@ -6,9 +6,18 @@ function BloomFilter(m, k) { this.m = m; this.k = k; - var buckets = this.buckets = [], + var buckets, n = Math.ceil(m / k), i = -1; + try { + var buffer = new ArrayBuffer(4 * n), + kbuffer = new ArrayBuffer(4 * k); + buckets = this.buckets = new Uint32Array(buffer); + this._locations = new Uint32Array(kbuffer); + } catch (e) { + buckets = this.buckets = []; + this._locations = []; + } while (++i < n) buckets[i] = 0; } @@ -16,7 +25,7 @@ BloomFilter.prototype.locations = function(v) { var k = this.k, m = this.m, - r = [], + r = this._locations, a = fnv_1a(v), b = fnv_1a_b(a), i = -1;