QA/Automation/Projects/Addons/MemChaser/Future Features
< QA | Automation | Projects | Addons | MemChaser
Jump to navigation
Jump to search
Circular Buffer
Usage/Overview
- Main data structure for graphs
- Stores temporary GC (and CC,etc.) values
- Conceptually is a linked list with a cycle from the tail to head, but it would be implemented using an array in JavaScript
Requirements
- Have as little impact on garbage collection as possible
- Have read/write capabilities with events emitted from writes
- Read operations should not post-increment head index and should not delete the element being read
Current Proposal
Source
https://github.com/dglol/memchaser/blob/circular-buffer/extension/lib/circular-buffer.js
Methods
read([index])
- reads from (head + index) if index is given
- else it reads the head value (i.e. index = 0)
Potential issues
JSON Blob vs Separate Buffers
- A JSON Blob of all the data ({gc: , cc:, etc}) has less overhead but writes would have to be synchronous
- GC and related data occur at different times, so separate buffers allows asynchronous writing
GC/CC Parser
HTML5/Canvas
History Graph
Time Calculations
Memory Report per Compartment
Blocked by https://bugzilla.mozilla.org/show_bug.cgi?id=687724