Bug 1458480 - Add a skia memory reporter and report on font cache usage. r=lsalzman, r=njn

--HG--
extra : rebase_source : 399b5be69d5c56d48bc15447f447f9c79c116c04
extra : amend_source : 3ccaab165dd48064366ed50bc3688d348362010a
extra : histedit_source : c606b880ac8dabbc4e824323146918ea4e5073ae
This commit is contained in:
Ryan Hunt 2018-05-14 16:47:01 -05:00
parent 217eb3f541
commit fff38caff1
4 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,29 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 "SkMemoryReporter.h"
#include "skia/include/core/SkGraphics.h"
namespace mozilla {
namespace gfx {
NS_IMETHODIMP
SkMemoryReporter::CollectReports(nsIHandleReportCallback* aHandleReport,
nsISupports* aData,
bool aAnonymize)
{
MOZ_COLLECT_REPORT(
"explicit/skia-font-cache", KIND_HEAP, UNITS_BYTES,
SkGraphics::GetFontCacheUsed(),
"Memory used in the skia font cache.");
return NS_OK;
}
NS_IMPL_ISUPPORTS(SkMemoryReporter, nsIMemoryReporter);
} // namespace gfx
} // namespace mozilla

View File

@ -0,0 +1,31 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */
#ifndef GFX_SKMEMORYREPORTER_H
#define GFX_SKMEMORYREPORTER_H
#include "nsIMemoryReporter.h"
namespace mozilla {
namespace gfx {
class SkMemoryReporter final : public nsIMemoryReporter
{
public:
NS_DECL_ISUPPORTS
NS_IMETHOD CollectReports(nsIHandleReportCallback* aHandleReport,
nsISupports* aData,
bool aAnonymize) override;
private:
~SkMemoryReporter() {}
};
} // namespace gfx
} // namespace mozilla
#endif /* GFX_SKMEMORYREPORTER_H */

View File

@ -106,6 +106,7 @@
# ifdef MOZ_ENABLE_FREETYPE
# include "skia/include/ports/SkTypeface_cairo.h"
# endif
# include "mozilla/gfx/SkMemoryReporter.h"
# ifdef __GNUC__
# pragma GCC diagnostic pop // -Wshadow
# endif
@ -839,6 +840,9 @@ gfxPlatform::Init()
}
RegisterStrongMemoryReporter(new GfxMemoryImageReporter());
#ifdef USE_SKIA
RegisterStrongMemoryReporter(new SkMemoryReporter());
#endif
mlg::InitializeMemoryReporters();
#ifdef USE_SKIA

View File

@ -65,6 +65,11 @@ EXPORTS.mozilla.gfx += [
'PrintTargetThebes.h',
]
if CONFIG['MOZ_ENABLE_SKIA']:
EXPORTS.mozilla.gfx += [
'SkMemoryReporter.h'
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
EXPORTS += [
'gfxAndroidPlatform.h',
@ -212,6 +217,11 @@ UNIFIED_SOURCES += [
'VsyncSource.cpp',
]
if CONFIG['MOZ_ENABLE_SKIA']:
UNIFIED_SOURCES += [
'SkMemoryReporter.cpp',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
UNIFIED_SOURCES += [
'gfxMacPlatformFontList.mm',