зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn
This adds reporting of nsMemoryReporterManager's internals. Currently we just report the weak and strong ref hashtables which have shown up in DMD reports. The new entry is '/explicit/memory-reporter-manager'. --HG-- extra : rebase_source : ab785a96a0dd52a4e09718bea015363cdf2c9c8a extra : source : 86ba30c70a27ab73f096fe88d2005aad8470ee05
This commit is contained in:
Родитель
a10348a5ca
Коммит
599ee96a71
|
@ -1521,7 +1521,7 @@ NS_IMPL_ISUPPORTS(DMDReporter, nsIMemoryReporter)
|
|||
** nsMemoryReporterManager implementation
|
||||
**/
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsMemoryReporterManager, nsIMemoryReporterManager)
|
||||
NS_IMPL_ISUPPORTS(nsMemoryReporterManager, nsIMemoryReporterManager, nsIMemoryReporter)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMemoryReporterManager::Init()
|
||||
|
@ -1614,6 +1614,9 @@ nsMemoryReporterManager::Init()
|
|||
nsMemoryInfoDumper::Initialize();
|
||||
#endif
|
||||
|
||||
// Report our own memory usage as well.
|
||||
RegisterWeakReporter(this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -1641,6 +1644,22 @@ nsMemoryReporterManager::~nsMemoryReporterManager()
|
|||
NS_ASSERTION(!mSavedWeakReporters, "failed to restore weak reporters");
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMemoryReporterManager::CollectReports(nsIHandleReportCallback* aHandleReport,
|
||||
nsISupports* aData, bool aAnonymize)
|
||||
{
|
||||
size_t n = MallocSizeOf(this);
|
||||
n += mStrongReporters->ShallowSizeOfIncludingThis(MallocSizeOf);
|
||||
n += mWeakReporters->ShallowSizeOfIncludingThis(MallocSizeOf);
|
||||
|
||||
MOZ_COLLECT_REPORT(
|
||||
"explicit/memory-reporter-manager", KIND_HEAP, UNITS_BYTES,
|
||||
n,
|
||||
"Memory used by the memory reporter infrastructure.");
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_CHILD_PROCESS_MEMORY_REPORTING
|
||||
#define MEMORY_REPORTING_LOG(format, ...) \
|
||||
printf_stderr("++++ MEMORY REPORTING: " format, ##__VA_ARGS__);
|
||||
|
|
|
@ -25,13 +25,17 @@ class MemoryReport;
|
|||
|
||||
class nsITimer;
|
||||
|
||||
class nsMemoryReporterManager final : public nsIMemoryReporterManager
|
||||
class nsMemoryReporterManager final : public nsIMemoryReporterManager,
|
||||
public nsIMemoryReporter
|
||||
{
|
||||
virtual ~nsMemoryReporterManager();
|
||||
|
||||
public:
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
NS_DECL_NSIMEMORYREPORTERMANAGER
|
||||
NS_DECL_NSIMEMORYREPORTER
|
||||
|
||||
MOZ_DEFINE_MALLOC_SIZE_OF(MallocSizeOf)
|
||||
|
||||
nsMemoryReporterManager();
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче