twitter/algebird — pull request #248 by andrewnguyen (2014-01-02 19:39:06+00:00)
Title: Andrewnguyen/caliper integrate Caliper, n

Sort of a big PR:
- Integrates caliper
- Added a second experimental version of HyperLogLogMonoid that does the jRhoW calculation more efficiently (but less idiomatically perhaps?)
- Added tests which confirm that the original HyperLogLogMonoid and the new version produce the same HLL structure using the apply method (perhaps we should be more thorough)
- Added benchmarks comparing the run time of running batchCreate parameterized on the size of the input and on the number of bits used.
- To run the benchmarks do 'sbt algebird-caliper/run'

Example run:
```
[info] benchmark bits max us linear runtime
[info] WithBitSet 5 10 208.54 =
[info] WithBitSet 5 20 436.65 =
[info] WithBitSet 5 30 651.97 =
[info] WithBitSet 10 10 266.32 =
[info] WithBitSet 10 20 553.00 =
[info] WithBitSet 10 30 779.33 =
[info] WithBitSet 17 10 1751.38 =
[info] WithBitSet 17 20 3531.91 =
[info] WithBitSet 17 30 4993.15 =
[info] WithBitSet 25 10 202083.50 ======
[info] WithBitSet 25 20 595929.50 ====================
[info] WithBitSet 25 30 893279.00 ==============================
[info] WithBitSetWrapper 5 10 6.86 =
[info] WithBitSetWrapper 5 20 12.87 =
[info] WithBitSetWrapper 5 30 17.77 =
[info] WithBitSetWrapper 10 10 5.06 =
[info] WithBitSetWrapper 10 20 8.04 =
[info] WithBitSetWrapper 10 30 12.55 =
[info] WithBitSetWrapper 17 10 3.96 =
[info] WithBitSetWrapper 17 20 8.16 =
[info] WithBitSetWrapper 17 30 12.93 =
[info] WithBitSetWrapper 25 10 4.23 =
[info] WithBitSetWrapper 25 20 8.40 =
[info] WithBitSetWrapper 25 30 13.56 =
```

NOTE: I took a few bits of code from https://github.com/sirthias/scala-benchmarking-template. We should wait on merging in until the licensing situation is clear. Also, it'd be nice if someone can double check I have all the necessary attributions.