Open
Bug 1380364
Opened 8 years ago
Updated 1 year ago
Histogram major GC collections
Categories
(Core :: JavaScript: GC, enhancement, P3)
Core
JavaScript: GC
Tracking
()
NEW
People
(Reporter: sfink, Unassigned)
References
(Blocks 1 open bug)
Details
I would like to have a histogram of what gets collected during a GC, to answer the question "why is my app spending so much time in GC?" as well as helping to diagnose long pauses.
I have handwavy ideas of how to do this. At the coarsest level, we could just histogram the number of arenas released during a GC (so a table mapping AllocKind to the drop in number of arenas.) Fragmentation would skew that quite a bit, though, so we might want to scan through all arenas' free lists and get an exact count of the number of Cells of each AllocKind. Or most expensively, we could break down the Object kinds by Class or something. I don't think we'd want to do an extra pass over the Object-holding arenas, so we'd probably want to do that during marking when we're scanning the whole live heap anyway? This would require some cleverness to keep the overhead under control. (eg we don't want to do a hashtable lookup on the Class pointer or name in order to find the right bucket. Perhaps we could automatically inject an index into all known Classes during initialization?...)
Comment 1•8 years ago
|
||
Is it not possible to count objects of different kinds during sweeping?
Updated•8 years ago
|
Priority: -- → P3
Updated•3 years ago
|
Severity: normal → S3
Updated•1 year ago
|
Blocks: GC.performance
You need to log in
before you can comment on or make changes to this bug.
Description
•