From ba61c7569d7b16125dbed127300c12574c080650 Mon Sep 17 00:00:00 2001 From: Basuke Suzuki Date: Wed, 18 May 2022 01:42:26 +0000 Subject: [PATCH] [WinCairo] Add memory usage of LibcMalloc category https://bugs.webkit.org/show_bug.cgi?id=239660 Reviewed by Ross Kirsling. WinCairo's memory timeline just displays JavaScript memory usage. Adding this info shows also Page memory usage. * page/win/ResourceUsageThreadWin.cpp: (WebCore::ResourceUsageThread::platformCollectMemoryData): Canonical link: https://commits.webkit.org/250674@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294377 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/page/win/ResourceUsageThreadWin.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/WebCore/page/win/ResourceUsageThreadWin.cpp b/Source/WebCore/page/win/ResourceUsageThreadWin.cpp index f7741af07dbf..b624600cf38b 100644 --- a/Source/WebCore/page/win/ResourceUsageThreadWin.cpp +++ b/Source/WebCore/page/win/ResourceUsageThreadWin.cpp @@ -118,7 +118,7 @@ void ResourceUsageThread::platformCollectCPUData(JSC::VM*, ResourceUsageData& da void ResourceUsageThread::platformCollectMemoryData(JSC::VM* vm, ResourceUsageData& data) { - data.totalDirtySize = memoryUsage(); + auto usage = data.totalDirtySize = memoryUsage(); size_t currentGCHeapCapacity = vm->heap.blockBytesAllocated(); size_t currentGCOwnedExtra = vm->heap.extraMemorySize(); @@ -129,6 +129,14 @@ void ResourceUsageThread::platformCollectMemoryData(JSC::VM* vm, ResourceUsageDa data.categories[MemoryCategory::GCOwned].dirtySize = currentGCOwnedExtra - currentGCOwnedExternal; data.categories[MemoryCategory::GCOwned].externalSize = currentGCOwnedExternal; + usage -= currentGCHeapCapacity; + // Following ResourceUsageThreadCocoa implementation + auto currentGCOwnedGenerallyInMalloc = currentGCOwnedExtra - currentGCOwnedExternal; + if (currentGCOwnedGenerallyInMalloc < usage) + usage -= currentGCOwnedGenerallyInMalloc; + + data.categories[MemoryCategory::LibcMalloc].dirtySize = usage; + data.totalExternalSize = currentGCOwnedExternal; data.timeOfNextEdenCollection = data.timestamp + vm->heap.edenActivityCallback()->timeUntilFire().value_or(Seconds(std::numeric_limits::infinity()));