-
Notifications
You must be signed in to change notification settings - Fork 1
Performance
Edgar Mesquita edited this page Jan 29, 2026
·
5 revisions
The focus of eQuantic.UI is to deliver a Single Page Application (SPA) experience with minimal overhead, leveraging the power of C# to generate highly optimized frontend code.
The Virtual DOM system was designed to be efficient and anticipate state changes.
The reconciliation algorithm uses an efficient Keyed Diffing strategy based on the Longest Increasing Subsequence (LIS) algorithm.
-
Key Property: The
keyproperty identifies elements across renders. Elements with the same key are reused and updated in place. - LIS Optimization: When elements are reordered, the algorithm computes the longest increasing subsequence to minimize DOM movements. Only elements outside the LIS need to be moved.
- Prefix/Suffix Optimization: Common prefixes and suffixes are processed first without complex diffing, improving performance for typical list operations (append, prepend).
- Memory Efficiency: Unmoved elements preserve their browser state (input focus, scroll position, etc.).
Memory leaks are mitigated through the intelligent use of weak references and automatic cleanup.
Event listeners are tracked using WeakMap<HTMLElement, Map<string, EventHandler>>.
-
Weak References:
WeakMapallows DOM elements to be collected by the Garbage Collector when removed from the tree, even if the framework still has internal references to their handlers. -
Automatic Cleanup: When removing a component, the reconciler attempts to explicitly disconnect listeners, but the
WeakMapacts as a safety net to prevent leaks in complex lifecycles.
The SDK uses an embedded Bun binary to process the final output.
- Build Performance: Bun processes TS/JS files up to 10x faster than Node.js-based tools.
- Tree-shaking: Dead code is automatically removed during build.
- Minification: Scripts are delivered compressed.
The compiler analyzes StyleClass definitions and extracts them into static .css files at build time.
- No CSS-in-JS Overhead: Unlike modern web frameworks that compute styles at runtime, eQuantic.UI delivers static CSS, reducing the CPU work in the browser.
- Cacheability: CSS files can be cached independently of the logic bundles.
- LCP Optimization: Layout is applied as soon as the CSS is loaded, preventing Layout Shift (CLS).
- Chunks per Page: Each page generates its own JS bundle. The user downloads only what is necessary for the current route.
- Lazy Loading: Complex components and libraries can be loaded on demand.