darkone23 / ishtar

functional javascript
9 stars 1 forks source link

ishtar gotta go fast #1

Open darkone23 opened 9 years ago

darkone23 commented 9 years ago

c75764c7494e5d1680d2fe2809efac58

darkone23 commented 9 years ago

benchmarks at commit 64d729457d25d1ca86edbc1311c0f46c3c427f21

simple transformation, take last of map decrement over sequence of 100k

lodash: 10ms
immutable-js: 62ms
ishtar: 184ms
mori: 59ms

We could probably get better performance by attaching directly to the prototype rather than doing a dictionary lookup for protocol dispatch, but I really like not mutating the types we dispatch against.

It's also worth noting that ishtar is the only library listed above that allows extensions to the data types it operates over (via defprotocol).

I think we are in the category of fast enough.

darkone23 commented 9 years ago

cursory test after transducers:

lodash: 15ms
immutable-js: 86ms
ishtar: 196ms
mori: 107ms

different hardware tho... :turtle:

darkone23 commented 9 years ago

after some tweaks to the test:

lodash: 23ms
immutable-js: 14ms
ishtar: 65ms
mori: 107ms

to anyone reading: this is not a real benchmark and should not be used to draw conclusions about the libraries tested, it's just a single timed run of the same functional transformation using several different libraries.