From 3a62ec77f0adefb21aeaad1d3bebbc3bad78d3be Mon Sep 17 00:00:00 2001 From: jinjiawei Date: Mon, 11 Aug 2025 15:27:29 +0800 Subject: [PATCH] fix sync diff Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/ICSCZ6?from=project-issue Signed-off-by: jinjiawei Change-Id: Ie2bb83d57494e666419038745945e30512b4093d --- ecmascript/mem/idle_gc_trigger.cpp | 4 ++-- ecmascript/mem/mem_controller.cpp | 1 + ecmascript/mem/mem_controller_utils.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ecmascript/mem/idle_gc_trigger.cpp b/ecmascript/mem/idle_gc_trigger.cpp index d75cf714b8..e27c33de23 100644 --- a/ecmascript/mem/idle_gc_trigger.cpp +++ b/ecmascript/mem/idle_gc_trigger.cpp @@ -181,7 +181,7 @@ bool IdleGCTrigger::CheckIdleYoungGC(bool isLongIdle) const } size_t expectIdleLimitSize = (newSpace->GetInitialCapacity() + newSpace->GetOvershootSize()) * IDLE_SPACE_SIZE_LIMIT_RATE; - return newSpace->GetObjectSize() >= expectIdleLimitSize; + return allocatedSizeSinceGC > IDLE_MIN_EXPECT_RECLAIM_SIZE && newSpace->GetObjectSize() >= expectIdleLimitSize; } bool IdleGCTrigger::CheckIdleLocalOldGC(const Heap *heap) const @@ -224,7 +224,7 @@ void IdleGCTrigger::TryTriggerIdleGC(TRIGGER_IDLE_GC_TYPE gcType) heap_->CollectGarbage(TriggerGCType::FULL_GC, GCReason::IDLE); } else if (CheckLocalBindingNativeTriggerOldGC() && !heap_->NeedStopCollection()) { LOG_GC(INFO) << "IdleGCTrigger: trigger local old GC by native binding size."; - heap_->CollectGarbage(TriggerGCType::FULL_GC, GCReason::IDLE_NATIVE); + heap_->CollectGarbage(TriggerGCType::OLD_GC, GCReason::IDLE_NATIVE); } else if (CheckIdleYoungGC(true) && !heap_->NeedStopCollection()) { LOG_GC(INFO) << "IdleGCTrigger: trigger young gc"; heap_->CollectGarbage(TriggerGCType::YOUNG_GC, GCReason::IDLE); diff --git a/ecmascript/mem/mem_controller.cpp b/ecmascript/mem/mem_controller.cpp index 9fc99e8f40..2e09820f57 100644 --- a/ecmascript/mem/mem_controller.cpp +++ b/ecmascript/mem/mem_controller.cpp @@ -16,6 +16,7 @@ #include "ecmascript/mem/mem_controller.h" #include "ecmascript/mem/concurrent_marker.h" #include "ecmascript/mem/parallel_evacuator.h" +#include "ecmascript/mem/mem_controller_utils.h" namespace panda::ecmascript { MemController::MemController(Heap *heap) : heap_(heap), allocTimeMs_(GetSystemTimeInMs()) diff --git a/ecmascript/mem/mem_controller_utils.h b/ecmascript/mem/mem_controller_utils.h index 995e52b38e..89bbc15aa3 100644 --- a/ecmascript/mem/mem_controller_utils.h +++ b/ecmascript/mem/mem_controller_utils.h @@ -23,7 +23,7 @@ #include "ecmascript/base/gc_ring_buffer.h" using BytesAndDuration = std::pair; -static inline BytesAndDuration MakeBytesAndDuration(uint64_t bytes, double duration) +inline BytesAndDuration MakeBytesAndDuration(uint64_t bytes, double duration) { return std::make_pair(bytes, duration); } -- Gitee