You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2024/04/25 17:10:14 UTC
(doris) branch master updated: [profile](scan) add projection time in scaner #34120
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 5d5448fd25c [profile](scan) add projection time in scaner #34120
5d5448fd25c is described below
commit 5d5448fd25cf0cb711db6118cb4870e17072601f
Author: Mryange <59...@users.noreply.github.com>
AuthorDate: Fri Apr 26 01:10:07 2024 +0800
[profile](scan) add projection time in scaner #34120
---
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 8d4a9b3a164..81e4dacba57 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 f3835e6c889..79fa4019687 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 ba953192507..6e83c059706 100644
--- a/be/src/vec/exec/scan/vscanner.h
+++ b/be/src/vec/exec/scan/vscanner.h
@@ -109,6 +109,7 @@ public:
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 @@ protected:
ScannerCounter _counter;
int64_t _per_scanner_timer = 0;
+ int64_t _projection_timer = 0;
bool _should_stop = false;
};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org