diff --git a/frameworks/native/appkit/app/main_thread.cpp b/frameworks/native/appkit/app/main_thread.cpp index 92355cbe0e0c813e8e22282bec8e165ef4e88f13..5bf9cdcdd2009a8fbaf2a56c046d018937257faa 100644 --- a/frameworks/native/appkit/app/main_thread.cpp +++ b/frameworks/native/appkit/app/main_thread.cpp @@ -1501,6 +1501,7 @@ void MainThread::HandleLaunchApplication(const AppLaunchData &appLaunchData, con options.uid = bundleInfo.applicationInfo.uid; options.apiTargetVersion = appInfo.apiTargetVersion; options.pkgContextInfoJsonStringMap = pkgContextInfoJsonStringMap; + options.allowArkTsLargeHeap = appInfo.allowArkTsLargeHeap; #ifdef CJ_FRONTEND options.lang = isCJApp ? AbilityRuntime::Runtime::Language::CJ : AbilityRuntime::Runtime::Language::JS; #endif diff --git a/frameworks/native/runtime/js_runtime.cpp b/frameworks/native/runtime/js_runtime.cpp index 7a083c5a1a28077ee9ec238b6e33dd88573df02e..4e3a4ff33c675660dfdafb78de855b6b7ebf124f 100644 --- a/frameworks/native/runtime/js_runtime.cpp +++ b/frameworks/native/runtime/js_runtime.cpp @@ -688,6 +688,7 @@ bool JsRuntime::Initialize(const Options& options) auto vm = GetEcmaVm(); CHECK_POINTER_AND_RETURN(vm, false); + panda::JSNApi::SetLargeHeap(options.allowArkTsLargeHeap); if (preloaded_) { PostPreload(options); } @@ -695,7 +696,6 @@ bool JsRuntime::Initialize(const Options& options) napi_value globalObj = nullptr; napi_get_global(env, &globalObj); CHECK_POINTER_AND_RETURN(globalObj, false); - if (!preloaded_) { InitSyscapModule(env); @@ -790,6 +790,7 @@ bool JsRuntime::CreateJsEnv(const Options& options) std::string memConfigProperty = OHOS::system::GetParameter("persist.ark.mem_config_property", ""); size_t gcThreadNum = OHOS::system::GetUintParameter("persist.ark.gcthreads", 7); size_t longPauseTime = OHOS::system::GetUintParameter("persist.ark.longpausetime", 40); + pandaOption.SetLargeHeap(options.allowArkTsLargeHeap); pandaOption.SetArkProperties(arkProperties); pandaOption.SetArkBundleName(bundleName); pandaOption.SetMemConfigProperty(memConfigProperty); diff --git a/interfaces/inner_api/runtime/include/runtime.h b/interfaces/inner_api/runtime/include/runtime.h index 4352d27ba869975340d5c9b4b8d58a6b7879b7fe..5b3312752f12c526bc9eac08395af8e769c84cc4 100644 --- a/interfaces/inner_api/runtime/include/runtime.h +++ b/interfaces/inner_api/runtime/include/runtime.h @@ -56,6 +56,7 @@ public: bool jitEnabled = false; bool isMultiThread = false; bool isErrorInfoEnhance = false; + bool allowArkTsLargeHeap = false; int32_t uid = -1; // ArkTsCard start bool isUnique = false;