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

Large Data Draw Speed #18

Open
taitems opened this issue Jan 20, 2012 · 3 comments
Open

Large Data Draw Speed #18

taitems opened this issue Jan 20, 2012 · 3 comments

Comments

@taitems
Copy link
Contributor

taitems commented Jan 20, 2012

The render speed on large sets is really slow. For some reason Chrome performance is roughly 3x worse than IE9 on my particular example (4,300ms vs. 1,500ms). It almost seems like it's rendering every row, but only showing the first X until you hit next page.

You might want to investigate how many repaints and reflows are being executed. DOM creation via strings might have to be the solution.

@taitems
Copy link
Contributor Author

taitems commented Jan 20, 2012

Just did a test with 500 items, 25 items per page.

Chrome came in at 103 seconds, IE9 at 47 seconds. Very strange.

@taitems
Copy link
Contributor Author

taitems commented Feb 1, 2012

On identical sets for another test, Firefox is clocking in at 3100ms and Chrome at 11000ms.

Interestingly, running profiles on the two shows an important difference.

Firefox spends most of its time (as expected) running the buildFragment jQuery function. The DOM construction and traversing should be expected to be the slowest and most costly.

Chrome instead spends the rest of its time running getComputedStyles.

No idea...

@taitems
Copy link
Contributor Author

taitems commented Feb 2, 2012

Landed a fix in my fork. Would be good if you could merge it into this fork.

Commit: 3f4acac

Results in 80% speed improvement on large sets in Chrome. There is a bug in either Chrome or jQuery where the jQuery hook for getComputedStyles runs incredibly slow. This removes the dependency upon jQuery for the getter, but leaves it for the setter.

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

1 participant