Aight. Here are the updated benchmarks.  Heap size set to 1G by
default, Java run with -server; I also got myself some shiny
statistics machinery in Haskell.

The really short summary:  they're... about the same?

Summary:

        IntMap       Java HAMT (32K-512K)  Java HAMT (512K-32K)
 32K     .035s       .100s                  .042s
 64K     .085s       .077s                  .088s
128K     .190s       .173s                  .166s
256K     .439s       .376s                  .483s
512K    1.047s      1.107s                 1.113s

In detail, IntMap:

benchmarking intmap/32000
collecting 20 samples, 1 iterations each, in estimated 820.9419 ms
bootstrapping with 100000 resamples
mean: 35.01358 ms, lb 34.11121 ms, ub 36.47188 ms, ci 0.950
std dev: 2.629518 ms, lb 1.464889 ms, ub 3.820059 ms, ci 0.950
found 2 outliers among 20 samples (10.0%)
  2 (10.0%) high severe
variance introduced by outliers: 4.965%
variance is slightly inflated by outliers

benchmarking intmap/64000
collecting 20 samples, 1 iterations each, in estimated 1.794639 s
bootstrapping with 100000 resamples
mean: 85.36590 ms, lb 83.84863 ms, ub 87.34270 ms, ci 0.950
std dev: 4.042450 ms, lb 3.071180 ms, ub 5.210041 ms, ci 0.950
variance introduced by outliers: 4.913%
variance is slightly inflated by outliers

benchmarking intmap/128000
collecting 20 samples, 1 iterations each, in estimated 4.032903 s
bootstrapping with 100000 resamples
mean: 190.1984 ms, lb 189.6087 ms, ub 191.1099 ms, ci 0.950
std dev: 1.699876 ms, lb 1.121827 ms, ub 2.637079 ms, ci 0.950
found 1 outliers among 20 samples (5.0%)
  1 (5.0%) high mild
variance introduced by outliers: 4.750%
variance is slightly inflated by outliers

benchmarking intmap/256000
collecting 20 samples, 1 iterations each, in estimated 9.389544 s
bootstrapping with 100000 resamples
mean: 439.0274 ms, lb 435.6792 ms, ub 444.7927 ms, ci 0.950
std dev: 10.04909 ms, lb 5.964673 ms, ub 14.68590 ms, ci 0.950
found 3 outliers among 20 samples (15.0%)
  2 (10.0%) high mild
  1 (5.0%) high severe
variance introduced by outliers: 4.750%
variance is slightly inflated by outliers

benchmarking intmap/512000
collecting 20 samples, 1 iterations each, in estimated 20.40116 s
bootstrapping with 100000 resamples
mean: 1.046665 s, lb 1.024223 s, ub 1.077329 s, ci 0.950
std dev: 60.99068 ms, lb 43.85342 ms, ub 78.53380 ms, ci 0.950
variance introduced by outliers: 4.942%
variance is slightly inflated by outliers

And now Java-implemented HAMT:

 I =  32000
"Elapsed time: 476.83896 msecs"
"Elapsed time: 129.631101 msecs"
"Elapsed time: 74.291231 msecs"
"Elapsed time: 68.319839 msecs"
"Elapsed time: 41.243881 msecs"
"Elapsed time: 45.591625 msecs"
"Elapsed time: 58.740188 msecs"
"Elapsed time: 38.914531 msecs"
"Elapsed time: 35.862171 msecs"
"Elapsed time: 41.271539 msecs"
 I =  64000
"Elapsed time: 77.344356 msecs"
"Elapsed time: 76.803971 msecs"
"Elapsed time: 93.124551 msecs"
"Elapsed time: 71.330153 msecs"
"Elapsed time: 81.106194 msecs"
"Elapsed time: 90.538605 msecs"
"Elapsed time: 70.184368 msecs"
"Elapsed time: 70.196166 msecs"
"Elapsed time: 78.350237 msecs"
"Elapsed time: 68.696711 msecs"
 I =  128000
"Elapsed time: 145.116415 msecs"
"Elapsed time: 357.026015 msecs"
"Elapsed time: 145.325526 msecs"
"Elapsed time: 194.460519 msecs"
"Elapsed time: 144.369214 msecs"
"Elapsed time: 143.871316 msecs"
"Elapsed time: 175.60394 msecs"
"Elapsed time: 144.483901 msecs"
"Elapsed time: 147.329535 msecs"
"Elapsed time: 144.782009 msecs"
 I =  256000
"Elapsed time: 653.918336 msecs"
"Elapsed time: 388.307165 msecs"
"Elapsed time: 361.146159 msecs"
"Elapsed time: 316.747299 msecs"
"Elapsed time: 313.326512 msecs"
"Elapsed time: 329.156172 msecs"
"Elapsed time: 323.883539 msecs"
"Elapsed time: 359.509225 msecs"
"Elapsed time: 360.504021 msecs"
"Elapsed time: 359.890434 msecs"
 I =  512000
"Elapsed time: 1368.259749 msecs"
"Elapsed time: 1357.138096 msecs"
"Elapsed time: 1164.463425 msecs"
"Elapsed time: 1087.096846 msecs"
"Elapsed time: 1421.036514 msecs"
"Elapsed time: 965.061633 msecs"
"Elapsed time: 1076.974038 msecs"
"Elapsed time: 828.068692 msecs"
"Elapsed time: 987.893417 msecs"
"Elapsed time: 810.575108 msecs

Aaand in the other direction

 I =  512000
"Elapsed time: 3466.817659 msecs"
"Elapsed time: 1047.325342 msecs"
"Elapsed time: 870.286512 msecs"
"Elapsed time: 985.984497 msecs"
"Elapsed time: 921.926887 msecs"
"Elapsed time: 772.401926 msecs"
"Elapsed time: 790.609548 msecs"
"Elapsed time: 747.57967 msecs"
"Elapsed time: 777.731826 msecs"
"Elapsed time: 754.598516 msecs"
 I =  256000
"Elapsed time: 476.565748 msecs"
"Elapsed time: 439.623009 msecs"
"Elapsed time: 548.94325 msecs"
"Elapsed time: 472.441847 msecs"
"Elapsed time: 577.204951 msecs"
"Elapsed time: 548.692722 msecs"
"Elapsed time: 416.976504 msecs"
"Elapsed time: 523.522705 msecs"
"Elapsed time: 420.375852 msecs"
"Elapsed time: 404.929297 msecs"
 I =  128000
"Elapsed time: 157.033585 msecs"
"Elapsed time: 191.957237 msecs"
"Elapsed time: 179.999572 msecs"
"Elapsed time: 156.903536 msecs"
"Elapsed time: 160.216012 msecs"
"Elapsed time: 180.149246 msecs"
"Elapsed time: 153.392229 msecs"
"Elapsed time: 166.831646 msecs"
"Elapsed time: 153.221276 msecs"
"Elapsed time: 157.149316 msecs"
 I =  64000
"Elapsed time: 73.265278 msecs"
"Elapsed time: 72.142408 msecs"
"Elapsed time: 126.916014 msecs"
"Elapsed time: 75.661313 msecs"
"Elapsed time: 75.418126 msecs"
"Elapsed time: 76.240255 msecs"
"Elapsed time: 112.986045 msecs"
"Elapsed time: 72.012846 msecs"
"Elapsed time: 72.265045 msecs"
"Elapsed time: 121.865843 msecs"
 I =  32000
"Elapsed time: 41.439609 msecs"
"Elapsed time: 40.39077 msecs"
"Elapsed time: 37.374235 msecs"
"Elapsed time: 74.785005 msecs"
"Elapsed time: 36.891967 msecs"
"Elapsed time: 35.746256 msecs"
"Elapsed time: 37.571191 msecs"
"Elapsed time: 37.394487 msecs"
"Elapsed time: 36.929189 msecs"
"Elapsed time: 37.027318 msecs"

I didn't bother adding the Haskell HAMT since its performance is
still abysmal.

Cheers,
Edward

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to