Comments (2)
Check https://medium.com/@localvoid/how-to-win-in-web-framework-benchmarks-8bc31af76ce7 for a discussion about virtual dom performance
from owl.
Ok, this is interesting. A lot of the lost time was spent in the updateProps method. This mean that when we add 10k new widgets, OWL actually update the props of all other previous widgets, which causes a rerender. Implementing shouldUpdate in the Message component to return false make a big difference: 1694ms, 1970ms, 1901ms, 3093ms
Vue does not have the issue because it tracks of each component that needs to be rerendered, so it simply does nothing about the previous widgets, and React solves the issue by being extremely fast. It actually rerenders the previous widgets, but I suspect that its virtual dom is highly optimized, and uses object pooling to prevent useless allocations, and is in general quite efficient.
So, I consider this issue closed, Owl performance is actually pretty decent, especially considering that not much work was done on the optimization part.
from owl.
Related Issues (20)
- Dynamic class attributes don't play well with other class attributes
- Give some way to access the lifecycle of elements defined in slots
- Adding a general term for chasing HOT 2
- move apps set from `__OWL_DEVTOOLS__.apps` to `App.apps`
- OWL vs Bun HOT 1
- Should onWillRender be async?
- remove onWillUpdateProps
- make onWillRender async
- Allow updating props on an App HOT 1
- How to Use Form View, Tree View or Field Inside a Component? HOT 1
- doc: useExternalListener does not show how to capture events
- add lifecycle diagram to lifecycle doc
- OWL benchmark HOT 3
- Add node 20 (LTS) to the CI
- add t-class directive?
- error while `t-out` an object
- unclear error messages
- Change in how t-set works for booleans between Odoo 14 and 16 HOT 3
- Templates not translated in Odoo env HOT 4
- Cannot add 'EffectContainer' in the registry: it already exists HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from owl.