-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Enhance performance of _paint in glyph_renderer #14427
Comments
HI @muendlein definitely appreciate the focus on performance improvements but these issues and PRs are a little light on details. Can provide a little more by way of explaining the problem, the solution, how much improvement there is, and in what circumstances? (Ideally with some minimal profiling documentation, e.g. even just screenshots as in #14262) |
The performance of WebGL in Bokeh is indeed limited by a large number of JavaScript calculations per rendered frame, such as If someone had the time and motivation for such an architectural change, I still would not encourage it. That level of energy would better off spent on WebGPU, WebWorkers and WebAssembly for example. |
@bryevdv You are fully right about the missing details. Let me elaborate a bit more. The problem:
The solution:
Performance testing: Example script that plots 1 million scatter points (2 different markers each 500k):
Frame times when zooming out or panning: Chrome: Speed up ~2.65x Firefox: Speed ~2.69x Please note that my other PRs address further bottlenecks (_search_indices & set_data) that become obvious after this optimization. Overall speed up with PR #14419 and #14421 is ~7x. @ianthomas23 To be clear I'm only addressing some low hanging fruits that are currently present with markers. |
@muendlein very nice thank you very much for the added context. |
Problem description
Performance when rendering large scatter datasets with WebGL is mainly limited by CPU tasks.
Feature description
Reduce overhead caused by indices.
Potential alternatives
--
Additional information
No response
The text was updated successfully, but these errors were encountered: