summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2025-05-26 14:14:20 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2025-05-26 14:21:24 +0200
commit349640e597477f57ab7d4de30f9d0bbc0e21fbd3 (patch)
treedd8d92f2f3393637dfb170940c63ef5152bfefea
parent2ada58e9a8c7b95dd7da5bfe8a6f1e16bb7686f5 (diff)
downloadjustbuild-349640e597477f57ab7d4de30f9d0bbc0e21fbd3.tar.gz
profile: include time of build start
When using a serve end point, the analysis phase might take quite long if serve has to actually build a delegated target or, at least, has to synchronize artifacts with the remote end point. Therefore, also record the time the build phase started (if building is requested) as an additional time stamp in the profile.
-rw-r--r--share/man/just-profile.5.md3
-rw-r--r--src/buildtool/main/main.cpp3
-rw-r--r--src/buildtool/profile/profile.cpp4
-rw-r--r--src/buildtool/profile/profile.hpp1
4 files changed, 11 insertions, 0 deletions
diff --git a/share/man/just-profile.5.md b/share/man/just-profile.5.md
index 04c1e273..d3167b89 100644
--- a/share/man/just-profile.5.md
+++ b/share/man/just-profile.5.md
@@ -91,6 +91,9 @@ The profile file contains the following information.
- For the key *`"start time"`* the start time of the invocation in
seconds since the epoch.
+- For the key *`"build start time"`* the start time of the build phase (if
+ any) in seconds since the epoch.
+
- For the key *`"stop time"`* the stop time of the invocation in seconds
since the epoch.
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index 10abfa1a..3da6de93 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -1244,6 +1244,9 @@ auto main(int argc, char* argv[]) -> int {
analyse_result->id.ToShortString(
Evaluator::GetExpressionLogLimit()));
+ if (profile != nullptr) {
+ profile->StartBuild();
+ }
auto build_result =
traverser.BuildAndStage(artifacts,
runfiles,
diff --git a/src/buildtool/profile/profile.cpp b/src/buildtool/profile/profile.cpp
index 5ee9cd15..1d8a7b46 100644
--- a/src/buildtool/profile/profile.cpp
+++ b/src/buildtool/profile/profile.cpp
@@ -178,3 +178,7 @@ void Profile::SetRemoteExecutionConfig(RemoteExecutionConfig const& config) {
remote["dispatch"] = dispatch;
profile_["remote"] = remote;
}
+
+void Profile::StartBuild() {
+ profile_["build start time"] = std::time(nullptr);
+}
diff --git a/src/buildtool/profile/profile.hpp b/src/buildtool/profile/profile.hpp
index 0db655fb..099ce2cc 100644
--- a/src/buildtool/profile/profile.hpp
+++ b/src/buildtool/profile/profile.hpp
@@ -46,6 +46,7 @@ class Profile {
IExecutionResponse::Ptr const& response,
std::string const& cwd);
void NoteAnalysisError(std::string const& error_message);
+ void StartBuild();
private:
struct ActionData {