Create sqlstats table with query perf logs
Adds a new table that keeps track of the queue time
and run time for the last 100 queries. Also adds basic
plumbing through the UI.
Bug: 115958658
Change-Id: I19d59e9a980d0634ca68982990c635303d1e1c10
diff --git a/src/trace_processor/trace_storage.cc b/src/trace_processor/trace_storage.cc
index 82a3ded..e54cf3c 100644
--- a/src/trace_processor/trace_storage.cc
+++ b/src/trace_processor/trace_storage.cc
@@ -49,5 +49,26 @@
*this = TraceStorage();
}
+void TraceStorage::SqlStats::RecordQueryBegin(const std::string& query,
+ uint64_t time_queued,
+ uint64_t time_started) {
+ if (queries_.size() >= kMaxLogEntries) {
+ queries_.pop_front();
+ times_queued_.pop_front();
+ times_started_.pop_front();
+ times_ended_.pop_front();
+ }
+ queries_.push_back(query);
+ times_queued_.push_back(time_queued);
+ times_started_.push_back(time_started);
+ times_ended_.push_back(0);
+}
+
+void TraceStorage::SqlStats::RecordQueryEnd(uint64_t time_ended) {
+ PERFETTO_DCHECK(!times_ended_.empty());
+ PERFETTO_DCHECK(times_ended_.back() == 0);
+ times_ended_.back() = time_ended;
+}
+
} // namespace trace_processor
} // namespace perfetto