Skip to content

Commit fb50acb

Browse files
authored
Merge pull request #93 from michaelwoerister/fix-summarize-incr-loading-stacks
Support query events stacked on incremental_load events in summarize.
2 parents abdbf5d + 6da9ed1 commit fb50acb

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

summarize/src/analysis.rs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,33 +159,47 @@ pub fn perform_analysis(data: ProfilingData) -> Results {
159159
thread.stack.pop();
160160
}
161161

162+
let current_event_duration = current_event.duration().unwrap();
163+
162164
// If there is something on the stack, subtract the current
163165
// interval from it.
164166
if let Some(current_top) = thread.stack.last() {
165167
record_event_data(&current_top.label, &|data| {
166-
data.self_time -= current_event.duration().unwrap();
168+
match &current_top.event_kind[..] {
169+
QUERY_EVENT_KIND | GENERIC_ACTIVITY_EVENT_KIND => {
170+
data.self_time -= current_event_duration;
171+
}
172+
INCREMENTAL_LOAD_RESULT_EVENT_KIND => {
173+
data.incremental_load_time -= current_event_duration;
174+
}
175+
_ => {
176+
eprintln!("Unexpectedly enountered event `{:?}`, \
177+
while top of stack was `{:?}`. Ignoring.",
178+
current_event, current_top);
179+
}
180+
}
167181
});
168182
}
169183

170184
// Update counters for the current event
171185
match &current_event.event_kind[..] {
172186
QUERY_EVENT_KIND | GENERIC_ACTIVITY_EVENT_KIND => {
173187
record_event_data(&current_event.label, &|data| {
174-
data.self_time += current_event.duration().unwrap();
188+
data.self_time += current_event_duration;
175189
data.number_of_cache_misses += 1;
176190
data.invocation_count += 1;
177191
});
178192
}
179193

180194
QUERY_BLOCKED_EVENT_KIND => {
181195
record_event_data(&current_event.label, &|data| {
182-
data.blocked_time += current_event.duration().unwrap();
196+
data.blocked_time += current_event_duration;
183197
});
184198
}
185199

186200
INCREMENTAL_LOAD_RESULT_EVENT_KIND => {
187201
record_event_data(&current_event.label, &|data| {
188-
data.incremental_load_time += current_event.duration().unwrap();
202+
data.incremental_load_time += current_event_duration;
189203
});
190204
}
191205

summarize/src/query_data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
33
use std::ops::Sub;
44
use std::time::Duration;
55

6-
#[derive(Serialize, Deserialize, Clone)]
6+
#[derive(Serialize, Deserialize, Clone, Debug)]
77
pub struct QueryData {
88
pub label: String,
99
pub self_time: Duration,

0 commit comments

Comments
 (0)