|
|
|
|
|
by owenpalmer
1309 days ago
|
|
> HTML-based web has been highly optimized for decades for text-heavy, linear, reading experiences If browsers offered a lower level graphics API, would that give a significant performance improvement over canvas? What is the performance bottleneck for flutter web? Is it the overhead of drawing to the canvas, or dom tree optimization? I'm very interested in this topic. |
|
It's mostly about algorithmic trade-offs. When you know your content layout is static and is highly biased towards vertical scrolling, you take different kinds of performance trade-offs, such as pre-computing and caching layout and painting output. Like when you know your array is sorted, you can use binary search to find an element instead of scanning. When pages do invalidate HTML layout you will actually see very bad jank. This is one of the classic performance pitfalls on the web, even using "classic" frameworks, like React or Angular. Flutter's current widgets and rendering primitives are biased towards dynamic content, where over-computation like this would hurt performance when you layout or paint isn't stable. Instead, we optimize for volatile content, using tricks like lazy rendering and repaint boundaries. We can still add primitives needed to render static content efficiently. We just feel like we're not yet sufficiently done with the non-static case.