22[ ![ Build Status] ( https://travis-ci.org/lemire/FastIntegerCompression.js.png )] ( https://travis-ci.org/lemire/FastIntegerCompression.js )
33
44This is an integer compression library in JavaScript, useful for work on indexes.
5- Given an array of integers, it produces an ArrayBuffer that uses far fewer bytes
6- than the original. You can later recover the original array quickly.
5+ Given an array of small integers, it produces an ArrayBuffer that uses far fewer bytes
6+ than the original (using VByte compression). It assumes a modern JavaScript engine with
7+ typed arrays.
8+
9+ From the compressed data, you can later recover the original array quickly
10+ (at a rate of millions of integers per second).
711
812
913``` javascript
@@ -22,17 +26,26 @@ This code is made available under the Apache License 2.0.
2226
2327## Performance numbers
2428
29+ This library is meant to compress arrays of small integers. It is not meant to
30+ compress text documents or arrays of large (or random) integers.
31+
32+ ## Performance numbers
33+
2534Go to benchmark repository (check the README.md file) and run the benchmark:
2635
2736``` bash
28- $ nodejs test.js
37+ $ node test.js
2938Platform: linux 3.13.0-91-generic x64
3039Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
3140Node version 4.5.0, v8 version 4.5.103.37
3241
3342input size: 7.813K compressed size: 1000B
34- FastIntegerCompression.compress x 347,635 ops/sec ±1.06 % (93 runs sampled)
43+ FastIntegerCompression.compress x 337,845 ops/sec ±0.93 % (92 runs sampled)
3544Fastest is FastIntegerCompression.compress
36- FastIntegerCompression.uncompress x 162,411 ops/sec ±0.58 % (92 runs sampled)
45+ FastIntegerCompression.uncompress x 187,694 ops/sec ±0.72 % (93 runs sampled)
3746Fastest is FastIntegerCompression.uncompress
3847```
48+
49+ These numbers means that we can uncompress 187,694 1000-integer arrays per second.
50+ That's 187 millions of integers per second.
51+
0 commit comments