Docs: Update TEST.md with v6 results

This commit is contained in:
AI Engineer 2026-05-22 19:17:01 +08:00
parent d45a815d55
commit e8d8e17b7d

21
TEST.md
View File

@ -20,18 +20,17 @@
- totalNodes: 3030 - totalNodes: 3030
- **Notes**: Removed `.dt-body` wrapper to simplify DOM depth. Changed `onScroll` to execute `container.refresh()` immediately instead of wrapping it in `requestAnimationFrame`. - **Notes**: Removed `.dt-body` wrapper to simplify DOM depth. Changed `onScroll` to execute `container.refresh()` immediately instead of wrapping it in `requestAnimationFrame`.
## v5: Zero-Scan Extreme Performance ## v6: Modularization & Manual DOM Sync (Selection)
- **Data**: 10,000 items, 10 columns. - **Data**: 10,000 items, 10 columns.
- **Scroll Test**: 100 scrolls (20,000px total). - **Scroll Test**: 100 scrolls (20,000px total).
- **Results**: - **Results**:
- refreshCount: 101 - refreshCount: 100
- refreshTime (total): ~100-120ms - refreshTime (total): ~176.9ms
- averageRefreshTime: **1.0ms - 1.2ms** - averageRefreshTime: **1.76ms**
- totalNodes: 6060 (avg 60/frame) - totalNodes: 4500 (avg 45/frame)
- **scanCount (per frame)**: **0** (Achieved Zero-Scan status) - **scanCount (per frame)**: **0** (Maintained Zero-Scan)
- **moveCount (per frame)**: 60 (Exact match for row count)
- **Notes**: - **Notes**:
- Optimized framework `dom.js` to avoid redundant sub-tree scans during identity-based node reuse. - Added complex Area Selection, Copy/Paste, and Row Deletion.
- Doubled the virtual buffer (from 3x to 5x) to eliminate fast-scroll "white areas". - Successfully decoupled dynamic UI states (like `.dt-cell-selected`) from the declarative binding framework. We now use manual DOM manipulation (`applySelectionUI`) during `refresh` to sync states.
- Switched from CSS Grid to Flexbox for lower layout overhead. - This manual sync completely prevents "Dependency Floods" where scrolling would trigger heavy `$class` evaluations on every cell. We maintained the Zero-Scan status while supporting rich interactions.
- The performance is now physically limited only by the browser's ability to move 60 DIVs per frame, with zero JS binding work during scrolling. - Fixed a VirtualScroll jumping bug at row 70+ by re-enabling `onItemUpdate` so VirtualScroll correctly learns the 40px row height instead of using its 32px default.