From 933e19bd27ad9251bb0e7af62cc906fe80ae253e Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Wed, 7 Feb 2024 16:42:18 +0800 Subject: [PATCH] some optimize --- src/profiler.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/profiler.cpp b/src/profiler.cpp index e7a15748..569ee7a1 100644 --- a/src/profiler.cpp +++ b/src/profiler.cpp @@ -38,13 +38,15 @@ void LineProfiler::_step(Frame *frame){ } std::vector& file_records = records[filename]; - if(file_records.empty()) file_records.resize(frame->co->src->line_starts.size() + 10); - - prev_record = &file_records[line]; - if(!prev_record->is_valid()){ - prev_record->line = line; - prev_record->src = frame->co->src.get(); + if(file_records.empty()){ + int total_lines = frame->co->src->line_starts.size(); + file_records.resize(total_lines + 1); + for(int i=1; i<=total_lines; i++){ + file_records[i].line = i; + file_records[i].src = frame->co->src.get(); + } } + prev_record = &file_records.at(line); } void LineProfiler::_step_end(){ @@ -76,7 +78,7 @@ Str LineProfiler::stats(){ ss << "==============================================================\n"; for(int line = 1; line < file_records.size(); line++){ LineRecord& record = file_records[line]; - if(!record.is_valid()) continue; + if(!record.is_valid() || record.hits == 0) continue; ss << left_pad(std::to_string(line), 6); ss << left_pad(std::to_string(record.hits), 10); ss << left_pad(std::to_string(record.time), 13);