diff --git a/native_engine/impl/ark/ark_native_engine.cpp b/native_engine/impl/ark/ark_native_engine.cpp index d2998813bf7e1f31ac5bef9d95651534992457e7..41421f83d81cefb7f099ab4f9985d33f69b665d2 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 f67b4b787e2dc1c48cf55677aea37c1363a6b544..252d62214a97f167ab534e690c21b093582ffcba 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 6f46205967129108b7617dfd9b3c34e0d48551e9..99d55669f7d25052ec3319ef9900ea7b5abc9c95 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 4f5306aabdab5c0400bf59e78c1848ba8055f18f..86a47697845e1b31278570d50cbc384a4bde40d9 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 +}