#Table performance issues:

8 messages · Page 1 of 1 (latest)

robust sigil
#

I have really bad freezing and stuttering when scrolling with tables on screen on my lower powered devices.
I setup the logseq dev environment to try and debug these issues. I'm not at all familiar with clojure and know only a tiny bit of react, so my abilities are pretty limited, however I was able to find some things:

  1. The issue is caused by the table being virtualized and having to re-render rows as I am scrolling.
  2. The slow part of re-rendering is largely "property scalar value"

I think the main question is why it's taking on the order of 10ms to render a single value in the table, for a table with 10 columns that's 100ms per row and then 400ms to render a few new rows.

I don't fee like I'm confident enough with clojure or react to get into the nitty gritty but to me it seems like something very fundimental is wrong here.
10ms seems like an insane amount of time for such a simple operation.
I've attached the profile recorded within react btw

#

A possible bandaid would be to virtualize the columns as well as the rows, so less columns need to render. However this doesn't really address the fundamental issue of the rendering of cells being extremely slow

#

I also read that some virtualization solutions re-use the dom elements and some do not, so maybe virtuoso could be replaced with a more performant virtualization solution.
This seems pretty popular: https://tanstack.com/virtual/latest
This specifically mentions performance and seems compatible with react native and react js https://github.com/Flipkart/recyclerlistview?tab=readme-ov-file#why

Virtualize only the visible content for massive scrollable DOM nodes at 60FPS in TS/JS, React, Vue, Solid, Svelte, Lit & Angular while retaining 100% control over markup and styles.

GitHub

High performance listview for React Native and web! - Flipkart/recyclerlistview

proud sluice
#

Update: the performance updates have been pushed to the test website.

pale jacinth
#

@robust sigil can we solve this question?

robust sigil
#

Yeah sure. I'd say so. It's still not ideal but it's definitely better

pale jacinth
#

Do you mind sharing another profiling output?

robust sigil