top | item 8446597

Transducers.js Round 2 with Benchmarks

104 points| jlongster | 11 years ago |jlongster.com | reply

18 comments

order
[+] bhouston|11 years ago|reply
In https://Clara.io we identified that _.each() and other types of function-based helpers were incredibly slow (even lodash was slow) and we had to replace these constructs in performance critical areas with raw for-loops. Three.JS we also did this.
[+] cdsanchez|11 years ago|reply
I'd be really interested in knowing how it compares against lazy.js: http://danieltao.com/lazy.js/
[+] ricardobeat|11 years ago|reply
My thoughts.

edit: added lazy.js to the benchmark and transducers.js wins hands down. Lazy also starts way behind _/lodash and only catches up after >50k elements.

[+] Touche|11 years ago|reply
What problem does this solve? It seems to trade more-verbose code for being more performant in large datasets. That seems reasonable. But otherwise, in day-to-day code why would I use this?
[+] Thomasdah|11 years ago|reply
The goal is to be less-verbose. You are able to use tansducer-based functions (map, filter, ...) on any datastructure that is iterable. For me, performance is a bonus.

I do not know how this compares to a monad/monoid. If anyone can explain, please go ahead. Thx!

[+] coldtea|11 years ago|reply
Because lots of day-to-day uses large datasets? Especially since 10,000 item array is considered "large" from that perspective.
[+] jamesrom|11 years ago|reply
Time should be on the x-axis. Independent variables on the x-axis and dependent variables on the y.

EDIT: To clarify, plotting 'seconds' over 'items per second' is needlessly confusing.

[+] dancole|11 years ago|reply
>> Independent variables on the x-axis and dependent variables on the y.

Correct. The independent variable being the number of items and the dependent variable being the time it takes to run said number of items.

>> Time should be on the x-axis.

Time should be on the y-axis. It's the time it takes to execute, given a set of items.

[+] nmjohn|11 years ago|reply
> Time should be on the x-axis. Independent variables on the x-axis and dependent variables on the y.

The graph is correct - the independent variables in this case are the number of items in the array (the x axis) and the library being tested (each line).

The dependent variable in this case is time - which is why it is on the y axis.

[+] mattdeboard|11 years ago|reply
I think you're just confused. From the post:

> The graph below shows the time it took to run versus the size of [the array]