Closed Bug 2017764 Opened 8 months ago Closed 8 months ago

More performance improvements for TreeDataAdapter and AutoTreeView

Categories

(Thunderbird :: General, enhancement)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED
150 Branch

People

(Reporter: darktrojan, Assigned: darktrojan)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

Attachments

(3 external files)

I've made more gains in the speed of TreeDataAdapter and AutoTreeView.

If we squash the hierarchy down to a flat list and (importantly) remember that list until it
changes, finding rows and calculating things is much faster.

Every row in a tree view is going to have the same DOM, so we can create it once and clone it.
This is much faster than creating all of the elements every time a row needs updating. We do have
to take care that when we recycle rows we clear out the previous state.

Target Milestone: --- → 150 Branch

Pushed by brendan@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/779cdace8b80
Cache a list of all visible rows in TreeDataAdapter. r=freaktechnik
https://hg.mozilla.org/comm-central/rev/cdede8e8d0b5
Create a fragment for AutoTreeView rows and only update what changes. r=freaktechnik

Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED

I'd assume the comm/mail/base/test/browser/widgets/browser_autoTreeView.js failures are from here.
https://treeherder.mozilla.org/jobs?repo=comm-central&selectedTaskRun=TVThxG1QTUeI_FCeMkHpHw.0

Regressions: 2019275
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Instead of destroying the row cache and rebuilding it, we can just insert or remove the rows.

Pushed by jtracey@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/2e372ba07ab7
Modify row cache when expanding or collapsing a row. r=freaktechnik

Status: REOPENED → RESOLVED
Closed: 8 months ago → 8 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: