hughfdjackson / immutable

neatly packages immutable equivalents to JavaScript's Objects and Arrays.
101 stars 7 forks source link

Remove multimethods #11

Closed hughfdjackson closed 11 years ago

hughfdjackson commented 11 years ago

Since one of the overarching goals of the project is to be an appealing target for browser users, and also to perform as well as possible without sacrificing a ridiculous amount of readability, the multimethod library should be removed.

hughfdjackson commented 11 years ago

node benchmarks/object.js ›› current: has 1 x 150,815 ops/sec ±1.48% (90 runs sampled) ›› current: has 3 x 150,706 ops/sec ±1.40% (93 runs sampled) ›› current: has 5 x 148,364 ops/sec ±1.90% (91 runs sampled) ›› current: has 10 x 149,229 ops/sec ±1.55% (91 runs sampled) ›› current: has 25 x 147,602 ops/sec ±2.39% (91 runs sampled) ›› current: has 100 x 148,326 ops/sec ±1.63% (93 runs sampled) ›› current: has 1000 x 148,121 ops/sec ±1.77% (92 runs sampled) ›› current: get 1 x 146,330 ops/sec ±1.83% (93 runs sampled) ›› current: get 3 x 145,711 ops/sec ±1.83% (91 runs sampled) ›› current: get 5 x 144,909 ops/sec ±1.86% (91 runs sampled) ›› current: get 10 x 145,886 ops/sec ±1.91% (92 runs sampled) ›› current: get 25 x 145,661 ops/sec ±1.86% (93 runs sampled) ›› current: get 100 x 145,186 ops/sec ±1.61% (91 runs sampled) ›› current: get 1000 x 146,164 ops/sec ±1.68% (91 runs sampled) ›› current: set 1 x 16,101 ops/sec ±2.86% (84 runs sampled) ›› current: set 3 x 16,097 ops/sec ±2.69% (86 runs sampled) ›› current: set 5 x 16,056 ops/sec ±3.21% (85 runs sampled) ›› current: set 10 x 16,324 ops/sec ±2.46% (87 runs sampled) ›› current: set 25 x 15,959 ops/sec ±2.55% (85 runs sampled) ›› current: set 100 x 16,039 ops/sec ±2.50% (84 runs sampled) ›› current: set 1000 x 16,169 ops/sec ±2.75% (85 runs sampled) ›› current: remove 1 x 39,537 ops/sec ±1.71% (93 runs sampled) ›› current: remove 3 x 39,844 ops/sec ±1.50% (93 runs sampled) ›› current: remove 5 x 39,630 ops/sec ±1.63% (94 runs sampled) ›› current: remove 10 x 39,470 ops/sec ±1.89% (94 runs sampled) ›› current: remove 25 x 39,756 ops/sec ±1.52% (94 runs sampled) ›› current: remove 100 x 39,116 ops/sec ±2.26% (90 runs sampled) ›› current: remove 1000 x 39,358 ops/sec ±1.66% (91 runs sampled) ›› current: transient 1 x 776,778 ops/sec ±2.14% (84 runs sampled) ›› current: transient 3 x 765,873 ops/sec ±2.28% (87 runs sampled) ›› current: transient 5 x 807,997 ops/sec ±2.16% (85 runs sampled) ›› current: transient 10 x 771,009 ops/sec ±3.78% (81 runs sampled) ›› current: transient 25 x 770,622 ops/sec ±3.88% (80 runs sampled) ›› current: transient 100 x 798,376 ops/sec ±2.08% (86 runs sampled) ›› current: transient 1000 x 814,505 ops/sec ±1.84% (84 runs sampled)

›› 0.7.0: has 1 x 146,798 ops/sec ±1.97% (91 runs sampled) ›› 0.7.0: has 3 x 142,826 ops/sec ±2.16% (86 runs sampled) ›› 0.7.0: has 5 x 141,207 ops/sec ±2.65% (88 runs sampled) ›› 0.7.0: has 10 x 145,775 ops/sec ±2.32% (92 runs sampled) ›› 0.7.0: has 25 x 144,217 ops/sec ±2.52% (91 runs sampled) ›› 0.7.0: has 100 x 142,454 ops/sec ±2.29% (88 runs sampled) ›› 0.7.0: has 1000 x 131,976 ops/sec ±5.04% (84 runs sampled) ›› 0.7.0: get 1 x 138,066 ops/sec ±2.98% (86 runs sampled) ›› 0.7.0: get 3 x 139,172 ops/sec ±2.90% (88 runs sampled) ›› 0.7.0: get 5 x 142,808 ops/sec ±1.98% (91 runs sampled) ›› 0.7.0: get 10 x 143,637 ops/sec ±1.68% (89 runs sampled) ›› 0.7.0: get 25 x 142,429 ops/sec ±1.99% (89 runs sampled) ›› 0.7.0: get 100 x 143,178 ops/sec ±1.95% (90 runs sampled) ›› 0.7.0: get 1000 x 143,462 ops/sec ±1.84% (92 runs sampled) ›› 0.7.0: set 1 x 15,898 ops/sec ±2.69% (86 runs sampled) ›› 0.7.0: set 3 x 15,848 ops/sec ±3.21% (87 runs sampled) ›› 0.7.0: set 5 x 15,344 ops/sec ±3.31% (81 runs sampled) ›› 0.7.0: set 10 x 15,218 ops/sec ±3.94% (82 runs sampled) ›› 0.7.0: set 25 x 15,212 ops/sec ±4.05% (78 runs sampled) ›› 0.7.0: set 100 x 15,741 ops/sec ±2.80% (86 runs sampled) ›› 0.7.0: set 1000 x 15,689 ops/sec ±3.16% (85 runs sampled) ›› 0.7.0: remove 1 x 38,338 ops/sec ±1.76% (92 runs sampled) ›› 0.7.0: remove 3 x 38,217 ops/sec ±2.06% (92 runs sampled) ›› 0.7.0: remove 5 x 36,891 ops/sec ±2.96% (87 runs sampled) ›› 0.7.0: remove 10 x 36,820 ops/sec ±3.03% (89 runs sampled) ›› 0.7.0: remove 25 x 36,286 ops/sec ±3.04% (88 runs sampled) ›› 0.7.0: remove 100 x 37,089 ops/sec ±3.26% (89 runs sampled) ›› 0.7.0: remove 1000 x 36,784 ops/sec ±3.76% (88 runs sampled) ›› 0.7.0: transient 1 x 737,116 ops/sec ±5.98% (79 runs sampled) ›› 0.7.0: transient 3 x 753,777 ops/sec ±3.23% (80 runs sampled) ›› 0.7.0: transient 5 x 757,490 ops/sec ±3.35% (80 runs sampled) ›› 0.7.0: transient 10 x 765,984 ops/sec ±2.91% (82 runs sampled) ›› 0.7.0: transient 25 x 750,712 ops/sec ±1.97% (86 runs sampled) ›› 0.7.0: transient 100 x 733,177 ops/sec ±3.16% (80 runs sampled) ›› 0.7.0: transient 1000 x 733,259 ops/sec ±3.55% (79 runs sampled)