Closed Bug 1385296 Opened 3 years ago Closed 3 years ago

Improve GC profile and stats output

Categories

(Core :: JavaScript: GC, enhancement)

55 Branch
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: jonco, Assigned: jonco)

Details

Attachments

(1 file)

Attached patch improve-profileSplinter Review
Here's a patch that makes a bunch of small improvements to JS_GC_PROFILE / MOZ_GCTIMER output:

 - adds slice budget to the major GC profile
 - adds indicators for shrinking, reset and non-incremental GCs
 - refactors the profile times to be just the major top-level phases
 - fixes printing of profile headers for the nursery
 - fixes indentation of MOZ_GCTIMER stats output
 - removes phases that display as taking zero time
Attachment #8891356 - Flags: review?(sphink)
Comment on attachment 8891356 [details] [diff] [review]
improve-profile

Review of attachment 8891356 [details] [diff] [review]:
-----------------------------------------------------------------

Cool. I confess I've only really been looking at the stats by extracting them from profiles, so I haven't been paying any attention to the MOZ_GCTIMER output. But it's important, especially since it's the easiest to use.

::: js/src/gc/Statistics.cpp
@@ +462,5 @@
>      return DuplicateString(buffer);
>  }
>  
> +static bool
> +IncludePhase(TimeDuration duration)

The naming is a little odd. The decision of whether to include the phase belongs to the caller; I'd expect "SignificantDuration" or "NontrivialPhase" or something. But... meh. Doesn't matter.
Attachment #8891356 - Flags: review?(sphink) → review+
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9236439b1cd4
Improve JS_GC_PROFILE / MOZ_GCTIMER output r=sfink
https://hg.mozilla.org/mozilla-central/rev/9236439b1cd4
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.