author | Nicholas Nethercote <nnethercote@mozilla.com> |
Thu, 26 Jan 2012 05:55:03 -0800 | |
changeset 85759 | c7cc6d203ced99d864dace315e2af078a49444b3 |
parent 85758 | c6aad97a8288dc56680fff090d70913d93e3b0c3 |
child 85760 | 19b63ce08d27a2d4fd1db21df1ed9560c2ec728b |
push id | 21960 |
push user | bmo@edmorley.co.uk |
push date | Tue, 31 Jan 2012 10:53:23 +0000 |
treeherder | mozilla-central@060de47a1822 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | luke |
bugs | 721628 |
milestone | 12.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -1416,19 +1416,16 @@ NS_MEMORY_REPORTER_IMPLEMENT(XPConnectJS "and 'js-compartments-system' might not match the number of " "compartments listed under 'js' if a garbage collection occurs at an " "inopportune time, but such cases should be rare.") namespace mozilla { namespace xpconnect { namespace memory { -#define SLOP_BYTES_STRING \ - " The measurement includes slop bytes caused by the heap allocator rounding up request sizes." - static PRInt64 ReportCompartmentStats(const JS::CompartmentStats &stats, const nsACString &pathPrefix, nsIMemoryMultiReporterCallback *callback, nsISupports *closure) { PRInt64 gcTotal = 0; @@ -1523,48 +1520,48 @@ ReportCompartmentStats(const JS::Compart ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "object-slots"), nsIMemoryReporter::KIND_HEAP, stats.objectSlots, "Memory allocated for the compartment's non-fixed object slot arrays, " "which are used to represent object properties. Some objects also " "contain a fixed number of slots which are stored on the compartment's " "JavaScript heap; those slots are not counted here, but in " - "'gc-heap/objects' instead." SLOP_BYTES_STRING, + "'gc-heap/objects' instead.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "object-elements"), nsIMemoryReporter::KIND_HEAP, stats.objectElements, "Memory allocated for the compartment's object element arrays, " - "which are used to represent indexed object properties." SLOP_BYTES_STRING, + "which are used to represent indexed object properties.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "string-chars"), nsIMemoryReporter::KIND_HEAP, stats.stringChars, "Memory allocated to hold the compartment's string characters. Sometimes " "more memory is allocated than necessary, to simplify string " "concatenation. Each string also includes a header which is stored on the " "compartment's JavaScript heap; that header is not counted here, but in " "'gc-heap/strings' instead.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "shapes-extra/tree-tables"), nsIMemoryReporter::KIND_HEAP, stats.shapesExtraTreeTables, "Memory allocated for the compartment's property tables that belong to " - "shapes that are in a property tree." SLOP_BYTES_STRING, + "shapes that are in a property tree.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "shapes-extra/dict-tables"), nsIMemoryReporter::KIND_HEAP, stats.shapesExtraDictTables, "Memory allocated for the compartment's property tables that belong to " - "shapes that are in dictionary mode." SLOP_BYTES_STRING, + "shapes that are in dictionary mode.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "shapes-extra/tree-shape-kids"), nsIMemoryReporter::KIND_HEAP, stats.shapesExtraTreeShapeKids, "Memory allocated for the compartment's kid hashes that belong to shapes " "that are in a property tree.", callback, closure); @@ -1575,31 +1572,31 @@ ReportCompartmentStats(const JS::Compart "Memory used by compartment wide tables storing shape information " "for use during object construction.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "script-data"), nsIMemoryReporter::KIND_HEAP, stats.scriptData, "Memory allocated for JSScript bytecode and various variable-length " - "tables." SLOP_BYTES_STRING, + "tables.", callback, closure); #ifdef JS_METHODJIT ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "mjit-code"), nsIMemoryReporter::KIND_NONHEAP, stats.mjitCode, "Memory used by the method JIT to hold the compartment's generated code.", callback, closure); ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "mjit-data"), nsIMemoryReporter::KIND_HEAP, stats.mjitData, "Memory used by the method JIT for the compartment's compilation data: " - "JITScripts, native maps, and inline cache structs." SLOP_BYTES_STRING, + "JITScripts, native maps, and inline cache structs.", callback, closure); #endif ReportMemoryBytes0(MakeMemoryReporterPath(pathPrefix, stats, "type-inference/script-main"), nsIMemoryReporter::KIND_HEAP, stats.typeInferenceMemory.scripts, "Memory used during type inference to store type sets of variables " @@ -1642,42 +1639,41 @@ ReportJSRuntimeStats(const JS::IterateDa index < data.compartmentStatsVector.length(); index++) { gcTotal += ReportCompartmentStats(data.compartmentStatsVector[index], pathPrefix, callback, closure); } ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/runtime-object"), nsIMemoryReporter::KIND_HEAP, data.runtimeObject, - "Memory used by the JSRuntime object." SLOP_BYTES_STRING, + "Memory used by the JSRuntime object.", callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/atoms-table"), nsIMemoryReporter::KIND_HEAP, data.runtimeAtomsTable, - "Memory used by the atoms table." SLOP_BYTES_STRING, + "Memory used by the atoms table.", callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/contexts"), nsIMemoryReporter::KIND_HEAP, data.runtimeContexts, "Memory used by JSContext objects and certain structures " - "hanging off them." SLOP_BYTES_STRING, + "hanging off them." , callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/normal"), nsIMemoryReporter::KIND_HEAP, data.runtimeNormal, "Memory used by a JSRuntime, " "excluding memory that is reported by " - "other reporters under 'explicit/js/runtime/'." SLOP_BYTES_STRING, + "other reporters under 'explicit/js/runtime/'.", callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/temporary"), nsIMemoryReporter::KIND_HEAP, data.runtimeTemporary, "Memory held transiently in JSRuntime and used during " - "compilation. It mostly holds parse nodes." - SLOP_BYTES_STRING, + "compilation. It mostly holds parse nodes.", callback, closure); ReportMemoryBytes0(pathPrefix + NS_LITERAL_CSTRING("runtime/regexp-code"), nsIMemoryReporter::KIND_NONHEAP, data.runtimeRegexpCode, "Memory used by the regexp JIT to hold generated code.", callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("runtime/stack-committed"), @@ -1758,17 +1754,17 @@ public: NS_NAMED_LITERAL_CSTRING(pathPrefix, "explicit/js/"); // This is the second step (see above). ReportJSRuntimeStats(data, pathPrefix, callback, closure); ReportMemoryBytes(pathPrefix + NS_LITERAL_CSTRING("xpconnect"), nsIMemoryReporter::KIND_HEAP, xpconnect, - "Memory used by XPConnect." SLOP_BYTES_STRING, + "Memory used by XPConnect.", callback, closure); ReportMemoryBytes(NS_LITERAL_CSTRING("js-gc-heap-chunk-dirty-unused"), nsIMemoryReporter::KIND_OTHER, data.gcHeapChunkDirtyUnused, "The same as 'explicit/js/gc-heap-chunk-dirty-unused'. Shown here for " "easy comparison with other 'js-gc' reporters.", callback, closure);