From 98659ef7ce4c5485b3693fd131afc126ece9704e Mon Sep 17 00:00:00 2001 From: Mryange <2319153948@qq.com> Date: Thu, 25 Apr 2024 17:56:09 +0800 Subject: [PATCH] upd --- be/src/vec/exec/scan/scanner_context.cpp | 7 +++++++ be/src/vec/exec/scan/vscanner.cpp | 1 + be/src/vec/exec/scan/vscanner.h | 2 ++ 3 files changed, 10 insertions(+) diff --git a/be/src/vec/exec/scan/scanner_context.cpp b/be/src/vec/exec/scan/scanner_context.cpp index 8d4a9b3a16436e..81e4dacba57c31 100644 --- a/be/src/vec/exec/scan/scanner_context.cpp +++ b/be/src/vec/exec/scan/scanner_context.cpp @@ -405,9 +405,11 @@ void ScannerContext::stop_scanners(RuntimeState* state) { std::stringstream scanner_statistics; std::stringstream scanner_rows_read; std::stringstream scanner_wait_worker_time; + std::stringstream scanner_projection; scanner_statistics << "["; scanner_rows_read << "["; scanner_wait_worker_time << "["; + scanner_projection << "["; // Scanners can in 3 state // state 1: in scanner context, not scheduled // state 2: in scanner worker pool's queue, scheduled but not running @@ -421,6 +423,9 @@ void ScannerContext::stop_scanners(RuntimeState* state) { scanner_statistics << PrettyPrinter::print(scanner->_scanner->get_time_cost_ns(), TUnit::TIME_NS) << ", "; + scanner_projection << PrettyPrinter::print(scanner->_scanner->projection_time(), + TUnit::TIME_NS) + << ", "; scanner_rows_read << PrettyPrinter::print(scanner->_scanner->get_rows_read(), TUnit::UNIT) << ", "; @@ -434,9 +439,11 @@ void ScannerContext::stop_scanners(RuntimeState* state) { scanner_statistics << "]"; scanner_rows_read << "]"; scanner_wait_worker_time << "]"; + scanner_projection << "]"; _scanner_profile->add_info_string("PerScannerRunningTime", scanner_statistics.str()); _scanner_profile->add_info_string("PerScannerRowsRead", scanner_rows_read.str()); _scanner_profile->add_info_string("PerScannerWaitTime", scanner_wait_worker_time.str()); + _scanner_profile->add_info_string("PerScannerProjectionTime", scanner_projection.str()); } _blocks_queue_added_cv.notify_one(); diff --git a/be/src/vec/exec/scan/vscanner.cpp b/be/src/vec/exec/scan/vscanner.cpp index f3835e6c889000..79fa4019687b42 100644 --- a/be/src/vec/exec/scan/vscanner.cpp +++ b/be/src/vec/exec/scan/vscanner.cpp @@ -187,6 +187,7 @@ Status VScanner::_filter_output_block(Block* block) { Status VScanner::_do_projections(vectorized::Block* origin_block, vectorized::Block* output_block) { SCOPED_RAW_TIMER(&_per_scanner_timer); + SCOPED_RAW_TIMER(&_projection_timer); const size_t rows = origin_block->rows(); if (rows == 0) { diff --git a/be/src/vec/exec/scan/vscanner.h b/be/src/vec/exec/scan/vscanner.h index ba953192507c8e..6e83c059706a45 100644 --- a/be/src/vec/exec/scan/vscanner.h +++ b/be/src/vec/exec/scan/vscanner.h @@ -109,6 +109,7 @@ class VScanner { int64_t get_time_cost_ns() const { return _per_scanner_timer; } + int64_t projection_time() const { return _projection_timer; } int64_t get_rows_read() const { return _num_rows_read; } bool is_init() const { return _is_init; } @@ -237,6 +238,7 @@ class VScanner { ScannerCounter _counter; int64_t _per_scanner_timer = 0; + int64_t _projection_timer = 0; bool _should_stop = false; };