Performance Optimization – DOM Subsystem Internals for Crawling at Scale #127
Labels
No labels
bug
docs
feature
housekeeping
html-spec
performance
react-compat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
glow-all/true-headless-browser#127
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Unser eigenes DOM muss nicht nur spec-korrekt sein, sondern auch performant genug fuer tausende Pages pro Minute. Anders als Browser koennen wir optimieren wo echte Browser Layout/Painting/Garbage-Collection brauchen.
Optimierungs-Strategien
1. String-basierte DOM Nodes (keine vollen JS Objekte fuer jeden Node)
-> Nur Element-Nodes bekommen volle Objekte
-> Text-Nodes: { type:3, data, parent } - einfaches Objekt oder sogar nur String + Parent-Ref
2. Lazy Attribute Parsing
3. Inline-Strings statt DOM Nodes fuer kleine Text-Content
<div>Hallo</div>- der Text "Hallo" braucht keinen vollen Text-Node4. Batch-Mutation-Notifications
5. Selektiver Style-Engine
6. Memory Pooling
7. Zero-Copy HTML Parsing
Labels
performance, html-spec
Architektur
Tests