@@ -6,6 +6,7 @@ use std::time::Duration;
66#[ derive( Serialize , Deserialize , Clone , Debug ) ]
77pub 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 ) ]
6571pub 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
103113fn 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