Open Bug 1633625 Opened 6 months ago Updated 4 months ago

Make a GC microbenchmark shell test suite

Categories

(Core :: JavaScript: GC, enhancement, P3)

enhancement

Tracking

()

ASSIGNED
mozilla78
Tracking Status
firefox78 --- affected

People

(Reporter: sfink, Assigned: sfink)

Details

(Keywords: leave-open)

Attachments

(38 files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

Finally going to start trickling these patches in.

Pushed by sfink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ee7b677a58d4
Reformat to eslint style
https://hg.mozilla.org/integration/autoland/rev/25677e1e8ae9
gc-ubench UI improvements r=jonco
https://hg.mozilla.org/integration/autoland/rev/228c0a6a6fa5
Consolidate some timing code into FrameTimer r=jonco
https://hg.mozilla.org/integration/autoland/rev/5fa27a3eb904
Load gc-ubench test loads from a file listing r=jonco
https://hg.mozilla.org/integration/autoland/rev/f2f85c9314d9
Split out shared benchmark harness from HTML UI. Summary metric computation is still in the UI for now. r=jonco
https://hg.mozilla.org/integration/autoland/rev/01c15698c52e
Move load management into a global AllocationLoadManager r=jonco
https://hg.mozilla.org/integration/autoland/rev/11f931f75953
Move FrameTimer to ui.js since the "tests" are still exclusive to the web UI for now r=jonco
Pushed by sfink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2e2e7b5d4a80
Complete the renaming of "garbage total" to "garbage piles" r=jonco
https://hg.mozilla.org/integration/autoland/rev/05f1caf2067e
Move load parameters into the appropriate part of the web UI r=jonco
https://hg.mozilla.org/integration/autoland/rev/9f781166ebe7
Extract out a load cycle manager r=jonco
https://hg.mozilla.org/integration/autoland/rev/69515a716bc5
Changed how allocation loads are started/stopped r=jonco
https://hg.mozilla.org/integration/autoland/rev/e64e2d20b81b
Drop default #garbage piles from 8 million to 8. r=jonco
https://hg.mozilla.org/integration/autoland/rev/e1122eb68511
Redo how load parameters are displayed, and fix invalid inputs for them r=jonco
https://hg.mozilla.org/integration/autoland/rev/a8c6fc87c62b
Wrap timing code up in a FrameHistory class r=jonco

Oops, forgot the leave-open flag yet again.

Status: RESOLVED → REOPENED
Keywords: leave-open
Resolution: FIXED → ---
Status: REOPENED → ASSIGNED

It makes more sense to clearKeptObjects to make things collectable, then do a collection, and then run any finalizations as part of drainJobQueue.

Pushed by sfink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/97079b757b57
move performance.mozMemory -> performance.mozMemory.gc to match the JS shell, and because performance.mozMemory.mallocBytes is deceptive when it only refers to GC-controlled malloc bytes r=jonco,smaug
https://hg.mozilla.org/integration/autoland/rev/b0e7c0beb052
Record malloc bytes (from the zone only) r=jonco
https://hg.mozilla.org/integration/autoland/rev/d7e1fb886446
Implement a performance.mozMemory.mallocBytes accessor for all-zones malloc memory r=jonco
https://hg.mozilla.org/integration/autoland/rev/51e3676256c7
Convert Graph and subclasses into JS classes r=jonco
https://hg.mozilla.org/integration/autoland/rev/e04b67a3ac24
Make noAllocation mutator load less special r=jonco
https://hg.mozilla.org/integration/autoland/rev/7e985178f7dc
Allow mutator loads to be disabled (presumably based on environment) r=jonco
https://hg.mozilla.org/integration/autoland/rev/28980e6af06f
Add new "deepWeakMap" mutator load r=jonco
https://hg.mozilla.org/integration/autoland/rev/6fd685c690a8
Make class declarations reloadable r=jonco
https://hg.mozilla.org/integration/autoland/rev/462f792e609d
Basic shell harness for running the GC microbenchmarks r=jonco
https://hg.mozilla.org/integration/autoland/rev/6c6d07b53773
Split out host-provided functionality (currently SpiderMonkey and Firefox) r=jonco
https://hg.mozilla.org/integration/autoland/rev/1a7da96bca66
Substring matching on mutators passed on command line r=jonco
https://hg.mozilla.org/integration/autoland/rev/70d5de256f8b
Expose a maybegc() testing function r=jonco
https://hg.mozilla.org/integration/autoland/rev/16b7d6a72288
Call clearKeptObjects before drainJobQueue. r=jonco
https://hg.mozilla.org/integration/autoland/rev/cc9e3394bf4f
Add a V8 shell runner r=jonco
https://hg.mozilla.org/integration/autoland/rev/37f859f3252e
Create a PerfTracker class that monitors the execution and computes performance results. r=jonco
https://hg.mozilla.org/integration/autoland/rev/a57b374c5f80
Implement a command-line argument parser modeled on Python's argparse r=jonco
https://hg.mozilla.org/integration/autoland/rev/9e31e7bd21c0
Split out schedulers and choose via command line argument --sched r=jonco
Severity: -- → N/A
Pushed by sfink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1416209aafe6
Implement --duration/-d command line option. r=jonco
https://hg.mozilla.org/integration/autoland/rev/c83d1d35e4cd
Adjust garbagePerFrame to around 50% 60fps frame drops on my laptop r=jonco
https://hg.mozilla.org/integration/autoland/rev/bf6efd095484
Split out a sequencer object. r=jonco
https://hg.mozilla.org/integration/autoland/rev/e192ac723df1
Replace LoadCycle sequencer with a more general ChainSequencer. r=jonco
https://hg.mozilla.org/integration/autoland/rev/a94d86a69ec8
Use mutator objects instead of names (minor refactor). r=jonco
https://hg.mozilla.org/integration/autoland/rev/dac4bcdd1a5b
Eliminate events in favor of pushing start/end control down into sequencers. r=jonco
Pushed by sfink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9920987a04bc
Implement a Find50Sequencer that searches for the garbagePerFrame resulting in 50% frame drop at 60fps r=jonco

== Change summary for alert #26355 (as of Fri, 26 Jun 2020 18:41:49 GMT) ==

Improvements:

10% tabpaint windows10-64-shippable-qr opt e10s stylo 45.17 -> 40.77

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=26355

You need to log in before you can comment on or make changes to this bug.