diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-08-22 10:36:41 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-08-23 10:18:41 +0200 |
commit | bc9fa36c65183a0b8e14b37c9aa2e07ce768463e (patch) | |
tree | 0e279147f1c993aba2596c6c316467dcfa0a2dcd | |
parent | 1e8066caaa711b9ab9f76b25873327779924fda6 (diff) | |
download | justbuild-bc9fa36c65183a0b8e14b37c9aa2e07ce768463e.tar.gz |
Track tree references that have to be expanded
... as this is relevant for performance of analysis. We log the total
numer of trees at performance level and the individual directories
at debug level, if requested.
-rw-r--r-- | src/buildtool/build_engine/target_map/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/result_map.hpp | 7 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/target_map.cpp | 8 | ||||
-rw-r--r-- | src/buildtool/common/statistics.hpp | 6 |
4 files changed, 22 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/target_map/TARGETS b/src/buildtool/build_engine/target_map/TARGETS index e57a8c3b..2b201fbf 100644 --- a/src/buildtool/build_engine/target_map/TARGETS +++ b/src/buildtool/build_engine/target_map/TARGETS @@ -46,6 +46,7 @@ , ["src/buildtool/build_engine/base_maps", "targets_file_map"] , ["src/buildtool/build_engine/expression", "expression"] , ["src/buildtool/execution_api/local", "local"] + , ["src/buildtool/logging", "logging"] , ["src/buildtool/multithreading", "async_map_consumer"] , ["src/utils/cpp", "hash_combine"] , ["src/utils/cpp", "path"] diff --git a/src/buildtool/build_engine/target_map/result_map.hpp b/src/buildtool/build_engine/target_map/result_map.hpp index ca55ee74..846a381e 100644 --- a/src/buildtool/build_engine/target_map/result_map.hpp +++ b/src/buildtool/build_engine/target_map/result_map.hpp @@ -16,6 +16,7 @@ #include "src/buildtool/build_engine/expression/expression.hpp" #include "src/buildtool/build_engine/target_map/configured_target.hpp" #include "src/buildtool/build_engine/target_map/target_cache.hpp" +#include "src/buildtool/common/statistics.hpp" #include "src/buildtool/common/tree.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/buildtool/multithreading/task.hpp" @@ -252,6 +253,12 @@ class ResultTargetMap { }); result.actions.erase(lastaction, result.actions.end()); + int trees_traversed = Statistics::Instance().TreesAnalysedCounter(); + if (trees_traversed > 0) { + Logger::Log(LogLevel::Performance, + "Analysed {} non-known source trees", + trees_traversed); + } Logger::Log(LogLevel::Info, "Discovered {} actions, {} trees, {} blobs", result.actions.size(), diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index 66e1ec73..8005a032 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -16,6 +16,8 @@ #include "src/buildtool/build_engine/expression/function_map.hpp" #include "src/buildtool/build_engine/target_map/built_in_rules.hpp" #include "src/buildtool/build_engine/target_map/utils.hpp" +#include "src/buildtool/common/statistics.hpp" +#include "src/buildtool/logging/logger.hpp" #include "src/utils/cpp/path.hpp" #include "src/utils/cpp/vector.hpp" @@ -1342,6 +1344,12 @@ void TreeTarget( (*setter)(std::move(analysis_result)); return; } + Logger::Log(LogLevel::Debug, [&key]() { + return fmt::format( + "Source tree reference for non-known tree {}", + key.target.ToString()); + }); + Statistics::Instance().IncrementTreesAnalysedCounter(); using BuildMaps::Target::ConfiguredTarget; diff --git a/src/buildtool/common/statistics.hpp b/src/buildtool/common/statistics.hpp index e34ccd03..071fc199 100644 --- a/src/buildtool/common/statistics.hpp +++ b/src/buildtool/common/statistics.hpp @@ -18,6 +18,7 @@ class Statistics { num_actions_flaky_tainted_ = 0; num_rebuilt_actions_compared_ = 0; num_rebuilt_actions_missing_ = 0; + num_trees_analysed_ = 0; } void IncrementActionsQueuedCounter() noexcept { ++num_actions_queued_; } void IncrementActionsExecutedCounter() noexcept { ++num_actions_executed_; } @@ -37,6 +38,7 @@ class Statistics { void IncrementExportsNotEligibleCounter() noexcept { ++num_exports_not_eligible_; } + void IncrementTreesAnalysedCounter() noexcept { ++num_trees_analysed_; } [[nodiscard]] auto ActionsQueuedCounter() const noexcept -> int { return num_actions_queued_; } @@ -67,6 +69,9 @@ class Statistics { [[nodiscard]] auto ExportsNotEligibleCounter() const noexcept -> int { return num_exports_not_eligible_; } + [[nodiscard]] auto TreesAnalysedCounter() const noexcept -> int { + return num_trees_analysed_; + } private: std::atomic<int> num_actions_queued_{}; @@ -79,6 +84,7 @@ class Statistics { std::atomic<int> num_exports_cached_{}; std::atomic<int> num_exports_uncached_{}; std::atomic<int> num_exports_not_eligible_{}; + std::atomic<int> num_trees_analysed_{}; }; #endif // INCLUDED_SRC_BUILDTOOL_COMMON_STATISTICS_HPP |