Hi errai team
our app is growing fast thanks to your amazing framework!
When getting bigger performance becomes more and more important.
So we first speed up the startup process of our app with some basic server side rendering, lazy singletons and async loading of code fragments.
Prefetching & prerendering of upcoming views also speeds up the user experience now.
We furthermore fully decoupled the client side data layer from the ui and make heavy use of schedulers and batching to speed
processing of data related tasks.
Working with BindableProxies instead of the real data objects also improved the performance a bit.
Finally we implemented some caching for the LocalStorage to make this faster.
Anyhow our app still feals a bit slow in the startup process. Even on latest hardware.
Some examples:
- getting the data from local storage ready takes an average of 7 seconds now for each startup process
- Processing the data fetched from infinite scrolling (about 40 entries including referenced onces) always
produces a sluggish ui for 1-4 seconds.
- filtering a complex query when having more than 200 local entries to filter also blocks the ui for 1-4 seconds
- ...
So whats the solution? Of course we can improve further especially on "micro level" and try to avoid or speed up the subroutines...
But whats about using Web Workers instead and fully separate all client side data processing to some dedicated web worker?
I found some linker code, probably from the speedtracer source, in the errai html5 project. Do you think it is possible to get
this working? Besides the general problems of webworkers (browser support, asynchronous, etc) what problems do you expect?
Do you have any comments implementing this? Do you maybe even have any experience implementing this or know somebody who already did
this?