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

WASM/yew performance VERY bad #6

Open
sumeet opened this issue Sep 18, 2020 · 0 comments
Open

WASM/yew performance VERY bad #6

sumeet opened this issue Sep 18, 2020 · 0 comments
Labels
8 difficulty 8, VERY hard, needs to be figured out and broken down

Comments

@sumeet
Copy link
Owner

sumeet commented Sep 18, 2020

this is easy to see when there are a lot of objects on the screen. happens when the easy way to repro is when the ValueRenderer renders a deeply nested JSON response, everything slows down to a crawl.

talked with yew developers, and we should try the following steps to improve things:

  • finish converting all UiToolkit draw_* functions to build components instead of rendering HTML directly. yew is faster at comparing components which know if they need to rerender, rather than diffing their generated HTML.
  • probably as follow-up, the callback->mutation structure may need to be revisited. Components will contain callbacks that "do the action", like for example a Button component would contain what to do when the button is clicked. there's no good way of comparing these callbacks.

options:

  • Do we refactor the application to make these not be callbacks? (rather declarative data-packages containing request information about the mutation that needs to be done)
  • or does that not end up mattering really? maybe we just treat all callbacks as "equal" (i.e., don't compare them when comparing the component)
@sumeet sumeet added the 8 difficulty 8, VERY hard, needs to be figured out and broken down label Sep 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8 difficulty 8, VERY hard, needs to be figured out and broken down
Projects
None yet
Development

No branches or pull requests

1 participant