Can we have a side-by-side comparison of the same demo using normal Ember?
Ember's Glimmer Engine
11–20 of 136 posts
Re: Ember's Glimmer Engine
#12Can we have a side-by-side comparison of the same demo using normal Ember?
Re: Ember's Glimmer Engine
#13Can we have a side-by-side comparison of the same demo using normal Ember?
It's slow. Real slow. The original demo really stressed Ember's pathological cases, so it was a great thing to keep in mind as we developed Glimmer.
Re: Ember's Glimmer Engine
#14Here is a pretty neat demo with tons of live updates from a firebase cluster: https://dbmonster.firebaseapp.com/
Demo of embers original performance with dbmon along with angular and react https://www.youtube.com/watch?v=z5e7kWSHWTg
Re: Ember's Glimmer Engine
#15Nice work.
Re: Ember's Glimmer Engine
#16 > Because our template language is declarative, we can do this at compile time.
"This" being determining which portions of the DOM will never change, and so only needing to analyze the portions that might.Re: Ember's Glimmer Engine
#17Earlier quoted context omitted.
Demo of embers original performance with dbmon along with angular and react https://www.youtube.com/watch?v=z5e7kWSHWTg
Are there demos and/or source code for the Angular and React implementations used in that presentation? I'd like to compare React to this new Ember implementation, because the latter, while better than the Ember demo in that presentation, is still noticeably sluggish on my machine.
Re: Ember's Glimmer Engine
#18Re: Ember's Glimmer Engine
#19Never used ember but that deserves a pretty complete write up about what was done and how. Nice work.
A handlebars template might look like this:
{{#if enabled}}
I'm enabled!
{{#end}}
The usual DOM-diffing algorithm compares every single thing: "has this div changed? Has the class changed? Has the changed?"
This uses the knowledge of Handlebars to make the diffing algorithm smarter: you don't need to check if the or its class has changed, it never will. You don't need to check if the
's contents have changed, it never will. This means less to diff, which means more speed.
This is the advantage of using a declarative syntax for templating: this analysis can be done entirely at compile time.