summaryrefslogtreecommitdiffstats
path: root/tools/memory-profiler/nsIMemoryProfiler.idl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/memory-profiler/nsIMemoryProfiler.idl')
-rw-r--r--tools/memory-profiler/nsIMemoryProfiler.idl72
1 files changed, 0 insertions, 72 deletions
diff --git a/tools/memory-profiler/nsIMemoryProfiler.idl b/tools/memory-profiler/nsIMemoryProfiler.idl
deleted file mode 100644
index 4ca386f9d..000000000
--- a/tools/memory-profiler/nsIMemoryProfiler.idl
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsISupports.idl"
-
-/**
- * The memory profiler samples allocation events. An allocation event
- * includes a type (what and at where is going to be allocated), a
- * size, a timestamp and the corresponding stack trace. Free events
- * are also tracked. For managed languages, namely languages relying
- * on garbage collection, a free event is generated when an object is
- * reclaimed by the garbage collector. These sampled events can be
- * used to approximate the full history of allocations afterwards.
- * That means we can get various memory profiles of a program in
- * different perspectives by post-processing the history in different
- * ways. The profiler is designed at the very beginning to support not
- * only JavaScript but also native codes. Naturally, not only
- * JavaScript objects but also native allocations are tracked.
- *
- * The result returned is the sampled allocation event traces in a
- * compact format. The events is sorted according to the timestamp
- * when the event happened. Each event has a trace index pointing to
- * the traces table. Each trace entry has a name index pointing to the
- * names table and a parent index pointing to the parent trace in the
- * traces table. By following the trace index one could rebuild the
- * complete backtrace of an allocation event.
- *
- * [ Events ]
- * +-------+-------+ +-------+
- * | Size | Size | | Size |
- * |-------|-------| |-------|
- * | Time | Time |......| Time |
- * |-------|-------| |-------|
- * +-- Trace | Trace | | Trace |
- * | +-------+-------+ +-------+
- * |
- * | [ Traces ]
- * +->--------+--------+ +--------+ +--------+
- * -| Name | Name | | Name | | Name |
- * / |--------|--------|...|--------|...|--------|
- * | | Parent | Parent | | Parent | | Parent |
- * | +---|----+----^--++ +--^--|--+ +---^----+
- * | | | | | | |
- * | +---------+ +-------+ +----------+
- * | [ Names ]
- * | +-----------------+-----------------+
- * +-> Function name | Function name |
- * | & line numbers | & line numbers |......
- * +-----------------+-----------------+
- *
- */
-[scriptable, uuid(1e10e7a9-bc05-4878-a687-36c9ea4428b1)]
-interface nsIMemoryProfiler : nsISupports
-{
- void startProfiler();
- void stopProfiler();
- void resetProfiler();
-
- /**
- * Get results in an object which contains three tables:
- * {
- * names, // an array of function names and positions
- * traces, // an array of {nameIdx, parentIdx}
- * events, // an array of {size, timestamp, traceIdx}
- * }
- * Should only be called after stopProfiler.
- */
- [implicit_jscontext]
- jsval getResults();
-};