Confirmed users
328
edits
No edit summary |
No edit summary |
||
| Line 3: | Line 3: | ||
When a bad memory leak kicks in, the system can be too unusable to get useful data out. | When a bad memory leak kicks in, the system can be too unusable to get useful data out. | ||
=== | === Solutions: Make it easier to get information out when the system is suffering === | ||
Make it easier to get information out when the system is suffering | |||
[[#A1]] Periodically log memory-related information (existing bug, I think? also | [[#A1]] Periodically log memory-related information (existing bug, I think? also | ||
| Line 16: | Line 14: | ||
command-line invocation 'firefox about:memory?verbose=1&outfile=...' | command-line invocation 'firefox about:memory?verbose=1&outfile=...' | ||
=== Solution | === Solution: Prevent the system from getting into such a bad state === | ||
Prevent the system from getting into such a bad state | |||
[[#A4]] Make a per-compartment (or per-?) cap on memory usage | [[#A4]] Make a per-compartment (or per-?) cap on memory usage | ||
| Line 71: | Line 67: | ||
Garbage is not collected | Garbage is not collected | ||
=== Solution | === Solution: Report cycles that CC misses === | ||
Report cycles that CC misses | |||
[[#D1]] Conservative scanner to find cycles involving things not marked as | [[#D1]] Conservative scanner to find cycles involving things not marked as | ||
CC-participants and report them as suspicious. | CC-participants and report them as suspicious. | ||
Solution: Report resources that leak over time but are still referenced (so | === Solution: Report resources that leak over time but are still referenced (so they are cleaned up before shutdown) === | ||
they are cleaned up before shutdown) | |||
[[#D2]] Register "expected lifetime" at acquisition time. Report things that live | [[#D2]] Register "expected lifetime" at acquisition time. Report things that live | ||