Only render what can be realistically displayed to users
viewport
is unreasonably inefficient for our usecase when the IOTree grows, as it decides what to display once it rendered to full IOTree
.
Especially while scrolling, this inefficiency became apparent.
Unfortunately, brick doesn't have any builtin way to improve this, see https://github.com/jtdaugherty/brick/issues/264
We take drawListElement
as an inspiration, and only render up to heightOfBox * 2
elements of the IOTree
.
This speeds up the view noticeably, giving the user a responsive experience.
In particular, we decouple rendering metadata computation from the actual rendering to decide which rows to render.
Edited by Hannes Siebenhandl