QA/Automation/Projects/Addons/MemChaser/Future Features

From MozillaWiki
< QA‎ | Automation‎ | Projects‎ | Addons‎ | MemChaser
Revision as of 19:29, 26 January 2012 by Davidg (talk | contribs) (Created page with "== 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 tai...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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