-
-
Notifications
You must be signed in to change notification settings - Fork 115
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
Ideas for optimizing Blaze #111
Comments
I made this test case for benchmarking the first rendering of Blaze. Not updates. To have a baseline and see what we can improve. |
@stubailo: Can you check if I am doing a React rendering in a reasonable way? I want to have it around so that I can compare. |
It is interesting that React spends the same amount of time switching between two tables which are completely different and between one table and another which is only 50% different. I thought it will a diff and replace only 50% of those DOM elements, so spend around 50% less time. |
@mitar I wonder how mobx (previously mobservable) would fare instead of I think it might solve issues in Blaze regarding re-rendering inner vs, outer templates; by figuring out which computations the others depend on and re-computing those first. |
I have no idea about that one. Feel free to investigate. :-) But I think we might have some other low-hanging fruits first. |
One interesting test case to test against: meteor/meteor#3733 |
Tracker is used a lot in Blaze. I am seeing that every time a computation is rerun, |
You heard my complaints about setter/getter not working with arrays, while blaze only renders array lists, and so perhaps we could consider switching to proxies as you explained was my true solution. |
hyperhtml, view lib, is pretty fast and weights nothing with basic api such that it supports all the browsers. Uses template literals. |
Anyway blaze slowness is due to rendering or tracking? |
@mitar Are you still willing to take some PR's on some of these issues? I am currently working on a project that is a bit stuck with Blaze, and I would be willing to give a shot at implementing some quality of life stuff. I think there are a few things that can be done fairly easily that would be great improvements:
I have already implemented most of these things in my own project by just overriding the default Blaze functions, but I think it would be worthwhile to implement them into the official codebase. In addition, the only breaking change would be the helper/event context, but again that wouldn't be too hard for most users to migrate anyway. Let me know what you think if you get the chance to look through this or if I've missed something/not explained clearly enough. |
I'm closing this issue because it's too old. If you think this issue is still relevant please open a new one. Why? We need to pay attention to all the open items so we should keep opened only items where people are involved. |
Let's start collecting ideas how we could optimize Blaze better. (For more great discussion about this you can check discussions in #103 and #45. This issue is trying to distill and organize those discussions.)
requestAnimationFrame
when DOM is frozen and do not do layout trashing, see example_.bind
The text was updated successfully, but these errors were encountered: