Skip to content

Commit ae3adb7

Browse files
committed
add event time column to summarize results
1 parent 232db90 commit ae3adb7

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

summarize/src/analysis.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ pub fn perform_analysis(data: ProfilingData) -> Results {
194194
QUERY_EVENT_KIND | GENERIC_ACTIVITY_EVENT_KIND => {
195195
record_event_data(&current_event.label, &|data| {
196196
data.self_time += current_event_duration;
197+
data.time += current_event_duration;
197198
data.number_of_cache_misses += 1;
198199
data.invocation_count += 1;
199200
});
@@ -202,13 +203,15 @@ pub fn perform_analysis(data: ProfilingData) -> Results {
202203
QUERY_BLOCKED_EVENT_KIND => {
203204
record_event_data(&current_event.label, &|data| {
204205
data.self_time += current_event_duration;
206+
data.time += current_event_duration;
205207
data.blocked_time += current_event_duration;
206208
});
207209
}
208210

209211
INCREMENTAL_LOAD_RESULT_EVENT_KIND => {
210212
record_event_data(&current_event.label, &|data| {
211213
data.self_time += current_event_duration;
214+
data.time += current_event_duration;
212215
data.incremental_load_time += current_event_duration;
213216
});
214217
}
@@ -493,6 +496,7 @@ mod tests {
493496

494497
assert_eq!(results.query_data_by_label("e1").self_time, Duration::from_nanos(100));
495498
assert_eq!(results.query_data_by_label("e1").invocation_count, 3);
499+
assert_eq!(results.query_data_by_label("e1").time, Duration::from_nanos(180));
496500
}
497501

498502
#[test]
@@ -514,6 +518,7 @@ mod tests {
514518

515519
assert_eq!(results.query_data_by_label("q1").self_time, Duration::from_nanos(230));
516520
assert_eq!(results.query_data_by_label("q1").blocked_time, Duration::from_nanos(130));
521+
assert_eq!(results.query_data_by_label("q1").time, Duration::from_nanos(230));
517522
}
518523

519524
#[test]
@@ -535,5 +540,6 @@ mod tests {
535540

536541
assert_eq!(results.query_data_by_label("q1").self_time, Duration::from_nanos(230));
537542
assert_eq!(results.query_data_by_label("q1").incremental_load_time, Duration::from_nanos(230));
543+
assert_eq!(results.query_data_by_label("q1").time, Duration::from_nanos(230));
538544
}
539545
}

summarize/src/main.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ fn diff(opt: DiffOpt) -> Result<(), Box<dyn Error>> {
8989
"Item",
9090
"Self Time",
9191
"Self Time Change",
92+
"Time",
93+
"Time Change",
9294
"Item count",
9395
"Cache hits",
9496
"Blocked time",
@@ -105,6 +107,8 @@ fn diff(opt: DiffOpt) -> Result<(), Box<dyn Error>> {
105107
query_data.label,
106108
format!("{:.2?}", query_data.self_time),
107109
format!("{:+.2}%", query_data.self_time_change),
110+
format!("{:.2?}", query_data.time),
111+
format!("{:+.2}%", query_data.time_change),
108112
format!("{:+}", query_data.invocation_count),
109113
format!("{:+}", query_data.number_of_cache_hits),
110114
format!("{:.2?}", query_data.blocked_time),
@@ -151,6 +155,7 @@ fn summarize(opt: SummarizeOpt) -> Result<(), Box<dyn Error>> {
151155
"Item",
152156
"Self time",
153157
"% of total time",
158+
"Time",
154159
"Item count",
155160
"Cache hits",
156161
"Blocked time",
@@ -172,6 +177,7 @@ fn summarize(opt: SummarizeOpt) -> Result<(), Box<dyn Error>> {
172177
query_data.label,
173178
format!("{:.2?}", query_data.self_time),
174179
format!("{:.3}", curr_percent),
180+
format!("{:.2?}", query_data.time),
175181
format!("{}", query_data.invocation_count),
176182
format!("{}", query_data.number_of_cache_hits),
177183
format!("{:.2?}", query_data.blocked_time),

summarize/src/query_data.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use std::time::Duration;
66
#[derive(Serialize, Deserialize, Clone, Debug)]
77
pub struct QueryData {
88
pub label: String,
9+
pub time: Duration,
910
pub self_time: Duration,
1011
pub number_of_cache_misses: usize,
1112
pub number_of_cache_hits: usize,
@@ -18,6 +19,7 @@ impl QueryData {
1819
pub fn new(label: String) -> QueryData {
1920
QueryData {
2021
label,
22+
time: Duration::from_nanos(0),
2123
self_time: Duration::from_nanos(0),
2224
number_of_cache_misses: 0,
2325
number_of_cache_hits: 0,
@@ -37,6 +39,8 @@ impl QueryData {
3739

3840
QueryDataDiff {
3941
label: self.label.clone(),
42+
time: invert(self.time),
43+
time_change: -100.0,
4044
self_time: invert(self.self_time),
4145
self_time_change: -100.0,
4246
number_of_cache_misses: -(self.number_of_cache_misses as i64),
@@ -50,6 +54,8 @@ impl QueryData {
5054
pub fn as_query_data_diff(&self) -> QueryDataDiff {
5155
QueryDataDiff {
5256
label: self.label.clone(),
57+
time: self.time.into(),
58+
time_change: std::f64::INFINITY,
5359
self_time: self.self_time.into(),
5460
self_time_change: std::f64::INFINITY,
5561
number_of_cache_misses: self.number_of_cache_misses as i64,
@@ -64,6 +70,8 @@ impl QueryData {
6470
#[derive(Serialize, Deserialize)]
6571
pub struct QueryDataDiff {
6672
pub label: String,
73+
pub time: SignedDuration,
74+
pub time_change: f64,
6775
pub self_time: SignedDuration,
6876
pub self_time_change: f64,
6977
pub number_of_cache_misses: i64,
@@ -89,6 +97,8 @@ impl Sub for QueryData {
8997

9098
QueryDataDiff {
9199
label: self.label,
100+
time: sd(self.time) - sd(rhs.time),
101+
time_change: percentage_change(rhs.time, self.time),
92102
self_time: sd(self.self_time) - sd(rhs.self_time),
93103
self_time_change: percentage_change(rhs.self_time, self.self_time),
94104
number_of_cache_misses: i(self.number_of_cache_misses) - i(rhs.number_of_cache_misses),
@@ -101,8 +111,8 @@ impl Sub for QueryData {
101111
}
102112

103113
fn percentage_change(base: Duration, change: Duration) -> f64 {
104-
let self_time_nanos = change.as_nanos() as i128 - base.as_nanos() as i128;
105-
self_time_nanos as f64 / base.as_nanos() as f64 * 100.0
114+
let nanos = change.as_nanos() as i128 - base.as_nanos() as i128;
115+
nanos as f64 / base.as_nanos() as f64 * 100.0
106116
}
107117

108118
#[derive(Serialize, Deserialize)]

0 commit comments

Comments
 (0)