19 return nodes_evaluation_times_;
25 nodes_evaluation_times_.
lookup_or_add(node_instance_key, timeit::Nanoseconds::zero()) += time;
33 for (
const bNode *node : node_tree.all_nodes()) {
35 instance_key, &node_tree, node);
36 if (!node->is_group()) {
41 tree_evaluation_time += nodes_evaluation_times_.
lookup_default(node_instance_key,
42 timeit::Nanoseconds::zero());
47 if (child_tree ==
nullptr) {
53 *child_tree, node_instance_key);
59 tree_evaluation_time += group_execution_time;
62 return tree_evaluation_time;
Value lookup_default(const Key &key, const Value &default_value) const
Value & lookup_or_add(const Key &key, const Value &value)
void finalize(const bNodeTree &node_tree)
void set_node_evaluation_time(bNodeInstanceKey node_instance_key, timeit::Nanoseconds time)
Map< bNodeInstanceKey, timeit::Nanoseconds > & get_nodes_evaluation_times()
const bNodeInstanceKey NODE_INSTANCE_KEY_BASE
bNodeInstanceKey node_instance_key(bNodeInstanceKey parent_key, const bNodeTree *ntree, const bNode *node)
std::chrono::nanoseconds Nanoseconds