Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List size is capped by browser/memory #565

Open
2 tasks done
sveta-slepner opened this issue Jul 23, 2023 · 2 comments
Open
2 tasks done

List size is capped by browser/memory #565

sveta-slepner opened this issue Jul 23, 2023 · 2 comments

Comments

@sveta-slepner
Copy link

Describe the bug

When trying to create a list with a large count of rows, one of two things happens:

A. If the count is over an arbitrary number, capped by each browser individually, the scroll won't go over that row.
For instance, for Chrome that number is 479348, and you can't scroll to the remaining items if there are any.

B. If the number is too large (for instance 150 mil), the tab will simply crash.
I believe this is caused by the getMeasurements function from the virtual-core library, as it tries to create an array of the count size.

Your minimal, reproducible example

https://codesandbox.io/p/sandbox/silent-wildflower-594ycm

Steps to reproduce

  1. In the sandbox click on one of the example buttons that will set a larger number, or edit the count property manually.

Expected behavior

A. I expect the scroll to allow the user to reach the exact number specified in the count.
B. I expect the browser not to crash .

How often does this bug happen?

Every time

Screenshots or Videos

No response

Platform

  • Any but specifically I'm using:
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36

tanstack-virtual version

v3.0.0-beta.54

TypeScript version

No response

Additional context

No response

Terms & Code of Conduct

  • I agree to follow this project's Code of Conduct
  • I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
@ddolcimascolo
Copy link

Hi all,

@tannerlinsley I just started using the library (the React binding, specifically) to implement an infinite list component and it works pretty well. I really like the approach of providing the basic feature of virtualizing a large list and letting us implement the rendering, fetching, etc.

I experienced this issue, and enabling debug: true show that all the time is spent is getMeasurements as @sveta-slepner mentioned, I have timings around 100ms in this method, and the scrolling is laggy at best :) I worked around this problem by providing a smaller count to the virtualizer, increasing it as more pages are fetched. Scrolling is fast even with thousands of items loaded.

Anything I can do to help fix that?

As a side note, when are you planning to release a stable v3?

Thanks,
David

@tannerlinsley
Copy link
Collaborator

I'll take a look at this asap.

@tannerlinsley tannerlinsley changed the title The library can't handle large lists List size is capped by browser/memory Aug 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants