Skip to content

perf: vertical virtual renderer: seven correctness fixes and a render-area clear #4938

Description

@lukecotter

Follow-up to #4917, which grouped perf optimizations in the data, event,
sort and filter paths. This series is the vertical virtual renderer, kept separate on purpose.

Background: I maintain a custom renderer VirtualDomVertical that is faster than stock and correct for variable-height rows. I did this for perf but also to fix some renderer issues. Seven correctness fixes and
one call-count change, in five PRs. A full renderer rewrite came out of the same work; I am
not proposing it, and its PR is closed.

# PR Kind Touches Source lines
1 #4929: record renderMode as a string for custom renderer classes fix RowManager.js 13
2 #4930: align scrollToRowPosition with the row's actual offsetTop fix rendering/Renderer.js 33
3 #4931: four state-tracking fixes in the vertical virtual renderer fix VirtualDomVertical.js 29
4 #4935: disable browser scroll anchoring on the table holder fix tabulator.scss 1
5 #4936: clear the render area with replaceChildren() perf BasicVertical.js, VirtualDomVertical.js 14

All five are drafts so the approach can be agreed before anything is marked ready. Each passes its own CI independently, all stand alone, no perf loss, mutation churn is byte-identical to master at 500k rows. 94 lines of
source in total. The order above is least to most invasive; any one can be taken alone.

#4931 collects the four smallest fixes, one commit each, because reviewing them separately would be annoying. #4932, #4933 and #4934 are closed in favour of it.

Each PR carries its own measurements and caveats. Happy to share the benchmark harness or split anything further.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions