Description
Hi,
If I understand correcly, ImmutableJS use a list that looks like Scala/Clojure vector with internal nodes of size 32.
I think exposing this internal structure may leverage better performances when rendering big immutable list. For example it an item has changed in an immutable list of 100000 elements, one does not have to iterate the 100000 elements and call shouldComponentUpdate
100000 times, but rather traverse the ImmutableJs List tree and call shouldComponentUpdate
for the nodes, permitting to short-circuit the rendering faster and not have to call shouldComponentUpdate
on all the 100000 items.
I mean if an item is modified in a big array of 100000 elements, the internal node holds an array of 32 references and the item "depth" in the tree is 3, instead of calling shouldComponentUpdate
100000 times, you can just call shouldComponentUpdate
something like 4*32 times with PureRenderMixin.
I don't know how to achieve this in ImmutableJS nor if it's a good idea to use its internal structure if it's not part of the public API, but this could definitively boost performances.
See also related SO question: http://stackoverflow.com/questions/30976722/react-performance-rendering-big-list-with-purerendermixin