From bbd73a8c90291f9207cdcb3727e522fe4d9e89c0 Mon Sep 17 00:00:00 2001 From: shanweiqian Date: Mon, 10 Mar 2025 16:42:06 +0800 Subject: [PATCH] Add a performance optimization switch Issue: https://gitee.com/openharmony/developtools_ace_ets2bundle/issues/ICEB60 Signed-off-by: liyancheng2 Change-Id: I27a9804b69c2ebf96e987a459b57b7be201dfb9b --- compiler/src/ets_checker.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/compiler/src/ets_checker.ts b/compiler/src/ets_checker.ts index 5f382fb94..548c3d04d 100644 --- a/compiler/src/ets_checker.ts +++ b/compiler/src/ets_checker.ts @@ -557,14 +557,17 @@ export function serviceChecker(rootFileNames: string[], newLogger: Object = null MemoryMonitor.stopRecordStage(processBuildHaprrecordInfo); } - if (globalProgram.program && - (process.env.watchMode !== 'true' && !projectConfig.isPreview && - !projectConfig.hotReload && !projectConfig.coldReload)) { - globalProgram.program.releaseTypeChecker(); - const allowGC: boolean = global && global.gc && typeof global.gc === 'function'; - if (allowGC) { - global.gc(); - } + // Release the typeChecker early and perform GC in the following scenarios: + // In memory-priority mode or default mode, when the preview mode is disabled in a full compilation scenario, + // and it is not a preview, hot reload, or cold reload scenario. The typeChecker is not released early in performance-priority mode. + let shouldReleaseTypeChecker: boolean = rollupShareObject?.projectConfig?.executionMode !== 'performance' && globalProgram.program && + process.env.watchMode !== 'true' && !projectConfig.isPreview && !projectConfig.hotReload && !projectConfig.coldReload; + if (shouldReleaseTypeChecker) { + globalProgram.program.releaseTypeChecker(); + const allowGC: boolean = global && global.gc && typeof global.gc === 'function'; + if (allowGC) { + global.gc(); + } } } -- Gitee