From 60fd77d644aa95981b93a4ffb5e1c5ae70106aad Mon Sep 17 00:00:00 2001 From: peterhuangyu Date: Fri, 13 Jun 2025 10:17:52 +0800 Subject: [PATCH] add setJsRwaHeapTrimLevel interface Signed-off-by: peterhuangyu --- native_engine/impl/ark/ark_native_engine.cpp | 6 ++++++ native_engine/impl/ark/ark_native_engine.h | 3 +++ native_engine/native_engine.h | 1 + test/unittest/engine/test_ark.cpp | 18 +++++++++++++++++- 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/native_engine/impl/ark/ark_native_engine.cpp b/native_engine/impl/ark/ark_native_engine.cpp index d2998813b..41421f83d 100644 --- a/native_engine/impl/ark/ark_native_engine.cpp +++ b/native_engine/impl/ark/ark_native_engine.cpp @@ -2087,6 +2087,12 @@ void ArkNativeEngine::SetAppFreezeFilterCallback(AppFreezeFilterCallback callbac DFXJSNApi::SetAppFreezeFilterCallback(vm_, callback); } +void ArkNativeEngine::SetRawHeapTrimLevel(uint32_t level) +{ + DFXJSNApi::SetJsRawHeapCropLevel(static_cast(level)); + return; +} + void ArkNativeEngine::StartCpuProfiler(const std::string& fileName) { JSNApi::SetNativePtrGetter(vm_, reinterpret_cast(ArkNativeEngine::GetNativePtrCallBack)); diff --git a/native_engine/impl/ark/ark_native_engine.h b/native_engine/impl/ark/ark_native_engine.h index f67b4b787..252d62214 100644 --- a/native_engine/impl/ark/ark_native_engine.h +++ b/native_engine/impl/ark/ark_native_engine.h @@ -251,6 +251,9 @@ public: // Set Appfreeze Filter void SetAppFreezeFilterCallback(AppFreezeFilterCallback callback) override; + // Set RawHeap Trim Level + void SetRawHeapTrimLevel(uint32_t level) override; + // Detect performance to obtain cpuprofiler file void StartCpuProfiler(const std::string& fileName = "") override; void StopCpuProfiler() override; diff --git a/native_engine/native_engine.h b/native_engine/native_engine.h index 6f4620596..99d55669f 100644 --- a/native_engine/native_engine.h +++ b/native_engine/native_engine.h @@ -259,6 +259,7 @@ public: virtual void SetJsDumpThresholds(size_t thresholds) = 0; virtual void SetAppFreezeFilterCallback(AppFreezeFilterCallback callback) = 0; + virtual void SetRawHeapTrimLevel(uint32_t level) = 0; virtual void StartCpuProfiler(const std::string& fileName = "") = 0; virtual void StopCpuProfiler() = 0; diff --git a/test/unittest/engine/test_ark.cpp b/test/unittest/engine/test_ark.cpp index 4f5306aab..86a476978 100644 --- a/test/unittest/engine/test_ark.cpp +++ b/test/unittest/engine/test_ark.cpp @@ -411,4 +411,20 @@ HWTEST_F(NativeEngineTest, RegisterWorkerEnvTest001, testing::ext::TestSize.Leve delete workerEngine1; delete workerEngine2; -} \ No newline at end of file +} + +/** + * @tc.name: SetRawHeapTrimLevel + * @tc.desc: Test interface of SetRawHeapTrimLevel + * @tc.type: FUNC + */ +HWTEST_F(NativeEngineTest, SetRawHeapTrimLevelTest001, testing::ext::TestSize.Level0) +{ + ASSERT_NE(engine_, nullptr); + EcmaVM *vm = const_cast(reinterpret_cast(engine_)->GetEcmaVm()); + + auto arkIdleMonitor = ArkIdleMonitor::GetInstance(); + arkIdleMonitor->SetRawHeapTrimLevel(vm); + + engine_->SetRawHeapTrimLevel(1); // test value +} -- Gitee