[enhancement](profilev2) add some fields for profile v2 (#25611)
Add 3 counters for ExecNode: ExecTime - Total execution time(excluding the execution time of children). OutputBytes - The total number of bytes output to parent. BlockCount - The total count of blocks output to parent.
This commit is contained in:
@ -105,6 +105,7 @@ Status VSetOperationNode<is_intersect>::init(const TPlanNode& tnode, RuntimeStat
|
||||
|
||||
template <bool is_intersect>
|
||||
Status VSetOperationNode<is_intersect>::alloc_resource(RuntimeState* state) {
|
||||
SCOPED_TIMER(_exec_timer);
|
||||
// open result expr lists.
|
||||
for (const VExprContextSPtrs& exprs : _child_expr_lists) {
|
||||
RETURN_IF_ERROR(VExpr::open(exprs, state));
|
||||
@ -155,6 +156,7 @@ template <bool is_intersect>
|
||||
Status VSetOperationNode<is_intersect>::prepare(RuntimeState* state) {
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
RETURN_IF_ERROR(ExecNode::prepare(state));
|
||||
SCOPED_TIMER(_exec_timer);
|
||||
_build_timer = ADD_TIMER(runtime_profile(), "BuildTime");
|
||||
_probe_timer = ADD_TIMER(runtime_profile(), "ProbeTime");
|
||||
_pull_timer = ADD_TIMER(runtime_profile(), "PullTime");
|
||||
@ -223,6 +225,7 @@ void VSetOperationNode<is_intersect>::hash_table_init() {
|
||||
|
||||
template <bool is_intersect>
|
||||
Status VSetOperationNode<is_intersect>::sink(RuntimeState* state, Block* block, bool eos) {
|
||||
SCOPED_TIMER(_exec_timer);
|
||||
constexpr static auto BUILD_BLOCK_MAX_SIZE = 4 * 1024UL * 1024UL * 1024UL;
|
||||
|
||||
if (block->rows() != 0) {
|
||||
@ -259,6 +262,7 @@ Status VSetOperationNode<is_intersect>::sink(RuntimeState* state, Block* block,
|
||||
|
||||
template <bool is_intersect>
|
||||
Status VSetOperationNode<is_intersect>::pull(RuntimeState* state, Block* output_block, bool* eos) {
|
||||
SCOPED_TIMER(_exec_timer);
|
||||
SCOPED_TIMER(_pull_timer);
|
||||
create_mutable_cols(output_block);
|
||||
auto st = std::visit(
|
||||
@ -352,6 +356,7 @@ void VSetOperationNode<is_intersect>::add_result_columns(RowRefListWithFlags& va
|
||||
template <bool is_intersect>
|
||||
Status VSetOperationNode<is_intersect>::sink_probe(RuntimeState* state, int child_id, Block* block,
|
||||
bool eos) {
|
||||
SCOPED_TIMER(_exec_timer);
|
||||
SCOPED_TIMER(_probe_timer);
|
||||
CHECK(_build_finished) << "cannot sink probe data before build finished";
|
||||
if (child_id > 1) {
|
||||
|
||||
Reference in New Issue
Block a user