diff --git a/common_components/heap/allocator/region_manager.h b/common_components/heap/allocator/region_manager.h index b228816d2af84cb8fe18925526b3630fe2a54fa1..7968a00c5bc54a3d6ae034d28b1a6fc61c75fc33 100755 --- a/common_components/heap/allocator/region_manager.h +++ b/common_components/heap/allocator/region_manager.h @@ -335,7 +335,7 @@ public: size_t GetUsedUnitCount() const { return largeRegionList_.GetUnitCount() + recentLargeRegionList_.GetUnitCount() + - pinnedRegionList_.GetUnitCount() + recentPinnedRegionList_.GetUnitCount() + + GetPinnedUnitCount() + rawPointerRegionList_.GetUnitCount() + readOnlyRegionList_.GetUnitCount() + appSpawnRegionList_.GetUnitCount(); } @@ -357,6 +357,17 @@ public: readOnlyRegionList_.GetAllocatedSize() + appSpawnRegionList_.GetAllocatedSize(); } + inline size_t GetPinnedUnitCount() const + { + size_t pinnedUnitCount = + pinnedRegionList_.GetUnitCount() + recentPinnedRegionList_.GetUnitCount(); + for (size_t i = 0; i < FIXED_PINNED_REGION_COUNT; i++) { + pinnedUnitCount += recentFixedPinnedRegionList_[i]->GetUnitCount(); + pinnedUnitCount += fixedPinnedRegionList_[i]->GetUnitCount(); + } + return pinnedUnitCount; + } + inline size_t GetPinnedSpaceSize() const { size_t pinnedSpaceSize = diff --git a/common_components/heap/collector/marking_collector.cpp b/common_components/heap/collector/marking_collector.cpp index db58ee4bbcc3e10084b8182433f42668e87ae30d..485ffa9bc9519a652efa301b56320aafdbe9cd58 100755 --- a/common_components/heap/collector/marking_collector.cpp +++ b/common_components/heap/collector/marking_collector.cpp @@ -605,6 +605,7 @@ void MarkingCollector::PreGarbageCollection(bool isConcurrent) gcStats.collectedBytes = 0; gcStats.smallGarbageSize = 0; gcStats.pinnedGarbageSize = 0; + gcStats.largeGarbageSize = 0; gcStats.gcStartTime = TimeUtil::NanoSeconds(); gcStats.totalSTWTime = 0; gcStats.maxSTWTime = 0;