void AudioNodeStream::SizeOfAudioNodesIncludingThis(MallocSizeOf aMallocSizeOf, AudioNodeSizes& aUsage) const { // Explicitly separate out the stream memory. aUsage.mStream = SizeOfIncludingThis(aMallocSizeOf); if (mEngine) { // This will fill out the rest of |aUsage|. mEngine->SizeOfIncludingThis(aMallocSizeOf, aUsage); } }
NS_IMETHODIMP VariableLengthPrefixSet::CollectReports(nsIHandleReportCallback* aHandleReport, nsISupports* aData, bool aAnonymize) { MOZ_ASSERT(NS_IsMainThread()); size_t amount = SizeOfIncludingThis(UrlClassifierMallocSizeOf); return aHandleReport->Callback( EmptyCString(), mMemoryReportPath, KIND_HEAP, UNITS_BYTES, amount, NS_LITERAL_CSTRING("Memory used by the variable-length prefix set for a URL classifier."), aData); }
NS_IMETHODIMP CacheStorageService::CollectReports(nsIMemoryReporterCallback* aHandleReport, nsISupports* aData) { nsresult rv; rv = MOZ_COLLECT_REPORT( "explicit/network/cache2/io", KIND_HEAP, UNITS_BYTES, CacheFileIOManager::SizeOfIncludingThis(MallocSizeOf), "Memory used by the cache IO manager."); if (NS_WARN_IF(NS_FAILED(rv))) return rv; rv = MOZ_COLLECT_REPORT( "explicit/network/cache2/index", KIND_HEAP, UNITS_BYTES, CacheIndex::SizeOfIncludingThis(MallocSizeOf), "Memory used by the cache index."); if (NS_WARN_IF(NS_FAILED(rv))) return rv; MutexAutoLock lock(mLock); // Report the service instance, this doesn't report entries, done lower rv = MOZ_COLLECT_REPORT( "explicit/network/cache2/service", KIND_HEAP, UNITS_BYTES, SizeOfIncludingThis(MallocSizeOf), "Memory used by the cache storage service."); if (NS_WARN_IF(NS_FAILED(rv))) return rv; // Report all entries, each storage separately (by the context key) // // References are: // sGlobalEntryTables to N CacheEntryTable // CacheEntryTable to N CacheEntry // CacheEntry to 1 CacheFile // CacheFile to // N CacheFileChunk (keeping the actual data) // 1 CacheFileMetadata (keeping http headers etc.) // 1 CacheFileOutputStream // N CacheFileInputStream ReportStorageMemoryData data; data.mHandleReport = aHandleReport; data.mData = aData; sGlobalEntryTables->EnumerateRead(&ReportStorageMemory, &data); return NS_OK; }
NS_IMETHODIMP AudioContext::CollectReports(nsIHandleReportCallback* aHandleReport, nsISupports* aData, bool aAnonymize) { const nsLiteralCString nodeDescription("Memory used by AudioNode DOM objects (Web Audio)."); for (auto iter = mAllNodes.ConstIter(); !iter.Done(); iter.Next()) { AudioNode* node = iter.Get()->GetKey(); int64_t amount = node->SizeOfIncludingThis(MallocSizeOf); nsPrintfCString domNodePath("explicit/webaudio/audio-node/%s/dom-nodes", node->NodeType()); aHandleReport->Callback(EmptyCString(), domNodePath, KIND_HEAP, UNITS_BYTES, amount, nodeDescription, aData); } int64_t amount = SizeOfIncludingThis(MallocSizeOf); MOZ_COLLECT_REPORT( "explicit/webaudio/audiocontext", KIND_HEAP, UNITS_BYTES, amount, "Memory used by AudioContext objects (Web Audio)."); return NS_OK; }
int64_t nsLayoutStylesheetCache::Amount() { return SizeOfIncludingThis(MallocSizeOf); }