Open Bug 1943230 Opened 1 year ago Updated 9 months ago

Perf comparison of creating large number of input type elements, and the perf of reloading page full of elements

Categories

(Core :: DOM: Forms, defect)

defect

Tracking

()

People

(Reporter: mayankleoboy1, Unassigned)

References

(Depends on 3 open bugs, Blocks 1 open bug)

Details

Attachments

(22 files)

Spurred by bug 1939344 (and bug 1941140) and undeterred by bug 1942561 I am now profiling the following for all HTML Input Elements:

  • Creating a page full of input elements and comparing it to Chrome
  • Reloading a page full of input elements for all possible input element types
**** **** Nightly **** Chrome **** **** ****
Input element Number of elements Profile of generating the elements Time taken (ms) Profile of generating the elements Time taken (ms) Comment Nightly- Perf of reloading a generated page
Button 450,000 https://share.firefox.dev/3CndhyX 2200 https://share.firefox.dev/4apI0Il 4700 Nightly is faster https://share.firefox.dev/3E1OQHE
Color 150,000 https://share.firefox.dev/3WysMLd 1500 https://share.firefox.dev/3WuTbtc 3800 Nightly is faster https://share.firefox.dev/3Cj4RIM
File 150,000 https://share.firefox.dev/3EgARhc 5200 https://share.firefox.dev/4huanHH 8600 Nightly is faster https://share.firefox.dev/4jrUGlV
Hidden 1,500,000 https://share.firefox.dev/4h8QYMG 4100 https://share.firefox.dev/40JmFpU 7800 Nightly is faster https://share.firefox.dev/3WuIVRM
Image 250,000 https://share.firefox.dev/4arizWA 8000 https://share.firefox.dev/3PO5Qnm 18000 Nightly is faster https://share.firefox.dev/4g9IJOQ
Number 50,000 https://share.firefox.dev/4jupimI 2700 https://share.firefox.dev/3E9FvOb 1900 Nightly is slower https://share.firefox.dev/42piYa1
Password 150,000 https://share.firefox.dev/4h54SPQ 18000 https://share.firefox.dev/4hs0udu 2900 Nightly is very slow https://share.firefox.dev/4aviEc8
Range 150,000 https://share.firefox.dev/4aslDC2 4300 https://share.firefox.dev/3Cgic4L 5800 Nightly is faster https://share.firefox.dev/42mGkgu
Reset button 400,000 https://share.firefox.dev/4hsBDGe 3600 https://share.firefox.dev/4jvaxQD 7600 Nightly is faster https://share.firefox.dev/4ap8r0J
Search 150,000 https://share.firefox.dev/4jtrNpn 13000 https://share.firefox.dev/3PN5ZYn 11000 Nightly is slower https://share.firefox.dev/4h5jbUj
Submit 450,000 https://share.firefox.dev/3E6uywS 7800 https://share.firefox.dev/3E7Ge2j 10000 Nightly is faster https://share.firefox.dev/3WS3vvV
Text 150,000 https://share.firefox.dev/3ClhJ16 10000 https://share.firefox.dev/3WuWxwl 6000 Nightly is slower https://share.firefox.dev/4apL1ID
URL 150,000 https://share.firefox.dev/3PJS0m2 11000 https://share.firefox.dev/4aqzWaf 6000 Nightly is slower https://share.firefox.dev/3WuHsLp
Email 150,000 https://share.firefox.dev/4jpiGGp 12000 https://share.firefox.dev/3E6NjjK 5700 Nightly is slower https://share.firefox.dev/4jwdhgT
Tel 150,000 https://share.firefox.dev/3E3NL29 13000 https://share.firefox.dev/3Wt3qOV 7400 Nightly is slower https://share.firefox.dev/3WtNgF5
Time 15,000 https://share.firefox.dev/3E3NQmt 18000 https://share.firefox.dev/4jwdXmr 1800 Nightly is way slower and uses way more memory (2.4GB) https://share.firefox.dev/3EgUWnz
Week 50,000 https://share.firefox.dev/4ga34nn 1800 https://share.firefox.dev/4jtuRln 5100 Nightly doesn’t seem to support this input type? https://share.firefox.dev/4hnkQV6
Month 50,000 https://share.firefox.dev/3ClLGhs 2200 https://share.firefox.dev/40N0IGI 7800 Nightly is faster https://share.firefox.dev/4hi6aqw
Date 15,000 https://share.firefox.dev/40HnHCR 18000 https://share.firefox.dev/42rDMxI 1700 Nightly is way slower and uses way more memory (4GB) N/A- the page regenerates the elements on reload
Datetime-Local 15,000 https://share.firefox.dev/4apWHLn 21000 https://share.firefox.dev/4avBzTX 3200 Nightly is way slower and uses way more memory (4GB) N/A- the page regenerates the elements on reload

Emilio had found something worth fixing in the image loading testcase, showed some initial interest in looking at profiles and suggested that a comparison with Chrome would be useful.
Note that the comparison between Firefox and Chrome is only for generating the page. The "Reload" perf has not been compared - the idea being that for reload any extra work should be avoided regardless of perf difference.
All testcases were geenrated by chatpgpt, with only minor edits to remove extra styling.
cc emilio and dholbert.

Attached file Layout.xlsx
Attached file Button.html
Attached file Color.html
Attached file Date.html
Attached file DateTime-Local.html
Attached file Email.html
Attached file File.html
Attached file Hidden.html
Attached file Image.html
Attached file Month.html
Attached file Number.html
Attached file Password.html
Attached file Range.html
Attached file Reset.html
Attached file Search.html
Attached file Submit.html
Attached file Tel.html
Attached file Text.html
Attached file Time.html
Attached file URL.html
Attached file Week.html
Flags: needinfo?(emilio)

I think those dependencies are the most problematic, thanks for doing this.

Flags: needinfo?(emilio)

Thanks for the work!

Severity: -- → S3

The ones using UAWidgets (date and such) aren't very surprising. UAWidget setup is very slow. Luckily those elements are such that pages rarely have many of them.

Attached file Video elements.HTML

The perf difference of creating 5000 video elements is bad. By whatever magic, 5000 video elements are visible in Chrome in 1.2 seconds. We take 21s for the elements to appear.

nightly: https://share.firefox.dev/4hubYgE (21s+ 11s)
Chrome: https://share.firefox.dev/4aunyps (all video element visible after 1.2 seconds!)

Could you file a separate bug for that. Looks like UAWidget for video element is flushing style and whatnot.

See Also: → 1943629

(In reply to Olli Pettay [:smaug][bugs@pettay.fi] from comment #26)

Could you file a separate bug for that. Looks like UAWidget for video element is flushing style and whatnot.

Filed bug 1943629

See Also: → 1943648
See Also: → 1943746
See Also: → 1943729, 1943735
See Also: → 1943841
See Also: → 1943843
See Also: → 1943848
See Also: → 1943857
See Also: → 1943856
See Also: → 1943859
See Also: → 1943860
See Also: → 1943862
See Also: → 1943000, 1942562, 1942557
See Also: → 1944299
See Also: → 1944325
See Also: → 1944331
See Also: → 1944751
See Also: → 1945310
See Also: → 1945313
See Also: → 1945316
See Also: → 1945361
See Also: → 1945382
See Also: → 1948500
See Also: → 1948533
See Also: → 1948535
See Also: → 1948540
See Also: → 1948554
See Also: → 1948933
See Also: → 1949185
See Also: → 1949221
See Also: → 1950267
See Also: → 1950269
See Also: → 1950670
See Also: → 1950812
See Also: → 1950816
See Also: → 1950873
See Also: → 1950901
See Also: → 1951042
See Also: → 1951071
See Also: → 1944819
See Also: → 1951283
Depends on: 1951984
See Also: → 1952616
See Also: → 1952626
See Also: → 1954006
No longer depends on: 1951984
See Also: → 1951984
See Also: → 1954356
See Also: → 1956418
See Also: → 1957692
See Also: → 1958208
See Also: → 1952623
See Also: → 1958615
See Also: → 1958673
See Also: → 1958681
See Also: → 1958702
See Also: → 1958705
See Also: → 1958712
See Also: → 1958714
See Also: → 1958743
See Also: → 1958756
See Also: → 1958890
See Also: → 1959210
See Also: → 1959993
See Also: → 1960134
See Also: → 1960140
See Also: → 1960149
See Also: → 1961371
Depends on: 1961455
See Also: → 1961478
See Also: → 1961480
See Also: → 1961510
See Also: → 1961513
See Also: → 1961517
See Also: → 1961720
See Also: → 1962319
See Also: → 1962363
No longer depends on: 1961455
See Also: → 1961455
See Also: → 1962835
See Also: → 1962838
See Also: → 1962840
See Also: → 1962843
See Also: → 1962846
See Also: → 1962886
See Also: → 1962889
See Also: → 1962895
See Also: → 1962946
See Also: → 1961353
See Also: → 1963426
See Also: → 1963784
See Also: → 1964237
See Also: → 1964262
See Also: → 1964874
See Also: → 1964875
See Also: → 1965181
See Also: → 1965391
See Also: → 1965398
See Also: → 1965401
See Also: → 1965640
See Also: → 1965678
See Also: → 1968415
See Also: → 1968416
See Also: → 1968454
See Also: → 1968623
See Also: → 1968419
See Also: → 1958755
See Also: → 1971250
See Also: → 1971316
See Also: → 1969776
See Also: → 1971774
See Also: → 1971823
See Also: → 1972157
See Also: → 1972293
Depends on: 1972315
See Also: → 1973428
See Also: → 1961572
See Also: → 1974672
See Also: → 1974920
No longer depends on: 1972315
See Also: → 1972315
See Also: → 1975452, 1975354
See Also: → 1975812
See Also: → 1975813
See Also: → 1977135
See Also: → 1977138
See Also: → 1978195
See Also: → 1978224
See Also: → 1978498
See Also: → 1978628
See Also: → 1978851
See Also: → 1979049
See Also: → 1979061
See Also: → 1979487
Depends on: 1979594
See Also: → 1979727, 1979735
See Also: → 1979824
See Also: → 1980552
Blocks: 1980560
No longer depends on: 1979594
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: