Closed Bug 292431 Opened 20 years ago Closed 20 years ago

15% performance regression on DHTML due to fix for bug 240276

Categories

(Core :: Layout, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: bugzilla, Assigned: roc)

References

()

Details

(Keywords: regression)

Attachments

(1 file)

Build id: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050429 Firefox/1.0+ This regressed due to bug 240276, see bug 240276, comment 32.
No longer depends on: 240276
Summary: 15% performance regression on DHTML due to fix for bug 240272 → 15% performance regression on DHTML due to fix for bug 240276
Blocks: 240276
Flags: blocking-aviary1.1?
Flags: blocking1.8b2?
Here's the Tdhtml data from just before the checkin. ----------- Output from DHTMLPerformanceTest ------------- Document http://www.mozilla.org/performance/test-cases/dhtml/runTests.html loaded successfully Test Median Average Data ============================================================ colorfade: 1738 1760 1859,1738,1736,1740,1729 diagball: 1909 1907 1890,1907,1909,1912,1915 fadespacing: 2859 2851 2819,2863,2859,2855,2860 imageslide: 414 414 405,408,425,414,419 layers1: 5382 5397 5399,5377,5369,5459,5382 layers2: 230 230 227,232,232,227,230 layers4: 227 228 231,227,229,227,227 layers5: 4774 4807 4862,4770,4774,4866,4762 layers6: 576 576 574,576,572,578,578 meter: 1760 1818 2063,1760,1749,1760,1757 movingtext: 1340 1335 1312,1341,1339,1340,1343 mozilla: 3176 3213 3096,3439,3176,3183,3173 replaceimages: 3964 4023 3997,3938,4252,3962,3964 scrolling: 13916 14307 13832,13875,13916,15703,14210 slidein: 2860 2861 2859,2864,2864,2858,2860 slidingballs: 3978 3979 3982,3971,3978,3991,3974 zoom: 688 690 699,687,688,690,686 _x_x_mozilla_dhtml,1717 ----------- End Output from DHTMLPerformanceTest --------- and just after ----------- Output from DHTMLPerformanceTest ------------- Document http://www.mozilla.org/performance/test-cases/dhtml/runTests.html loaded successfully Test Median Average Data ============================================================ colorfade: 2272 2298 2433,2263,2248,2275,2272 diagball: 2745 2747 2747,2738,2786,2720,2745 fadespacing: 3956 3970 3931,4028,3935,4001,3956 imageslide: 605 608 573,642,636,605,586 layers1: 5688 5713 5752,5669,5671,5787,5688 layers2: 231 231 229,232,232,230,231 layers4: 230 231 233,230,229,231,230 layers5: 4724 4820 4807,4724,4715,5130,4723 layers6: 577 578 576,576,577,579,581 meter: 2858 2900 2879,2817,3124,2858,2820 movingtext: 1979 1981 1996,1977,1975,1979,1980 mozilla: 3967 4236 3924,5363,3968,3958,3967 replaceimages: 3865 3939 4230,3863,3861,3865,3877 scrolling: 13991 13984 13909,13962,13991,14023,14036 slidein: 3886 3881 3870,3858,3899,3886,3890 slidingballs: 4076 4066 4020,4076,4079,4076,4077 zoom: 992 992 995,991,992,991,992 _x_x_mozilla_dhtml,2070 ----------- End Output from DHTMLPerformanceTest ---------
Attached patch fixSplinter Review
The cause of the performance regression was that we are resizing the scrolled frame's view after reflowing it (which gives it the size of the scrolled frame's overflow area). Then later we resize it to the size of the scrollport which is the correct final size. When the scrolled frame is shorter than the viewport, this resizing forces us to repaint the area of the viewport below the scrolled frame's bottom edge every time we reflow anything. When you combine this with existing dirty rectangles in the viewport, parts of the scrolled frame can be repainted unnecessarily as well. The solution is to not resize the scrolled frame's view after reflowing it. It will be sized and positioned by PlaceScrollArea.
Assignee: nobody → roc
Status: NEW → ASSIGNED
Attachment #182747 - Flags: superreview?(bzbarsky)
Attachment #182747 - Flags: review?(bzbarsky)
Attachment #182747 - Flags: superreview?(bzbarsky)
Attachment #182747 - Flags: superreview+
Attachment #182747 - Flags: review?(bzbarsky)
Attachment #182747 - Flags: review+
Comment on attachment 182747 [details] [diff] [review] fix need approval for this serious perf. regression
Attachment #182747 - Flags: approval1.8b2?
Comment on attachment 182747 [details] [diff] [review] fix a=chofmann
Attachment #182747 - Flags: approval1.8b2? → approval1.8b2+
Flags: blocking-aviary1.1?
checked in
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
luna went back to 1691 so all is well.
Flags: blocking1.8b2?
Depends on: 328133
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: