From 15e555fb56747e912e82b81350b162313f337ec6 Mon Sep 17 00:00:00 2001 From: Tatiana Titova Date: Wed, 20 Aug 2025 17:08:00 +0300 Subject: [PATCH] Add init measurements Signed-off-by: Tatiana Titova --- ets2panda/compiler/core/compileJob.cpp | 2 ++ ets2panda/compiler/lowering/phase.cpp | 2 ++ ets2panda/parser/parserImpl.cpp | 2 ++ ets2panda/public/es2panda_lib.cpp | 3 +++ ets2panda/util/perfMetrics.cpp | 2 +- 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ets2panda/compiler/core/compileJob.cpp b/ets2panda/compiler/core/compileJob.cpp index 1c1bbcea20..df51835bae 100644 --- a/ets2panda/compiler/core/compileJob.cpp +++ b/ets2panda/compiler/core/compileJob.cpp @@ -20,6 +20,8 @@ namespace ark::es2panda::compiler { void CompileJob::Run() { + ES2PANDA_PERF_FN_SCOPE(); + std::unique_lock lock(m_); cond_.wait(lock, [this] { return dependencies_ == 0; }); diff --git a/ets2panda/compiler/lowering/phase.cpp b/ets2panda/compiler/lowering/phase.cpp index 47a89ade9e..5da4ace096 100644 --- a/ets2panda/compiler/lowering/phase.cpp +++ b/ets2panda/compiler/lowering/phase.cpp @@ -230,6 +230,8 @@ bool Phase::Apply(public_lib::Context *ctx, parser::Program *program) SetPhaseManager(ctx->phaseManager); GetPhaseManager()->SetCurrentPhaseId(id_); + ES2PANDA_PERF_EVENT_SCOPE("@lowering-phase/" + std::string(Name())); + #ifndef NDEBUG if (!Precondition(ctx, program)) { ctx->GetChecker()->LogError(diagnostic::PRECOND_FAILED, {Name()}, lexer::SourcePosition {}); diff --git a/ets2panda/parser/parserImpl.cpp b/ets2panda/parser/parserImpl.cpp index a96e0eabc0..831b4b077c 100644 --- a/ets2panda/parser/parserImpl.cpp +++ b/ets2panda/parser/parserImpl.cpp @@ -74,6 +74,8 @@ void ParserImpl::ParseScript(const SourceFile &sourceFile, bool genStdLib) void ParserImpl::ParseProgram(ScriptKind kind) { + ES2PANDA_PERF_FN_SCOPE(); + lexer::SourcePosition startLoc = lexer_->GetToken().Start(); lexer_->NextToken(); program_->SetKind(kind); diff --git a/ets2panda/public/es2panda_lib.cpp b/ets2panda/public/es2panda_lib.cpp index 81b3694623..841ca3192d 100644 --- a/ets2panda/public/es2panda_lib.cpp +++ b/ets2panda/public/es2panda_lib.cpp @@ -741,6 +741,9 @@ extern "C" __attribute__((unused)) es2panda_Context *ProceedToState(es2panda_Con ctx->state = ES2PANDA_STATE_ERROR; break; } + if (ctx->config->options->IsDumpPerfMetrics()) { + util::DumpPerfMetrics(); + } return reinterpret_cast(ctx); } diff --git a/ets2panda/util/perfMetrics.cpp b/ets2panda/util/perfMetrics.cpp index 981ec934c4..311ff32df9 100644 --- a/ets2panda/util/perfMetrics.cpp +++ b/ets2panda/util/perfMetrics.cpp @@ -272,7 +272,7 @@ static void DumpPerfMetricsImpl(std::optional prefix) } } - std::cout << ss.str(); + std::cout << ss.str() << std::flush; } void DumpPerfMetrics() -- Gitee