@@ -10,16 +10,18 @@ use crate::Metrics;
10
10
11
11
pub struct CompileTime {
12
12
pub example_name : String ,
13
+ pub nb_jobs : u32 ,
13
14
}
14
15
15
16
impl CompileTime {
16
- pub fn on ( example_name : String ) -> Self {
17
+ pub fn on ( example_name : String , nb_jobs : u32 ) -> Self {
17
18
Self {
18
19
example_name : if example_name == "" {
19
20
"breakout" . to_string ( )
20
21
} else {
21
22
example_name
22
23
} ,
24
+ nb_jobs : if nb_jobs == 0 { 8 } else { nb_jobs } ,
23
25
}
24
26
}
25
27
}
@@ -44,29 +46,43 @@ impl Metrics for CompileTime {
44
46
}
45
47
46
48
fn collect ( & self ) -> HashMap < String , u64 > {
49
+ let key = format ! (
50
+ "compile-time-{}-{}-{}" ,
51
+ std:: env:: consts:: FAMILY ,
52
+ std:: env:: consts:: ARCH ,
53
+ self . nb_jobs
54
+ ) ;
47
55
let results: Hyperfine =
48
56
serde_json:: from_reader ( std:: fs:: File :: open ( "build.json" ) . unwrap ( ) ) . unwrap ( ) ;
49
57
HashMap :: from ( [
50
58
(
51
- "compile-time .mean". to_string ( ) ,
59
+ format ! ( "{key} .mean") ,
52
60
( results. results [ 0 ] . mean * 1000.0 ) as u64 ,
53
61
) ,
54
62
(
55
- "compile-time .stddev". to_string ( ) ,
63
+ format ! ( "{key} .stddev") ,
56
64
( results. results [ 0 ] . stddev . unwrap_or_default ( ) * 1000.0 ) as u64 ,
57
65
) ,
58
66
(
59
- "compile-time .median". to_string ( ) ,
67
+ format ! ( "{key} .median") ,
60
68
( results. results [ 0 ] . median * 1000.0 ) as u64 ,
61
69
) ,
62
70
(
63
- "compile-time .user". to_string ( ) ,
71
+ format ! ( "{key} .user") ,
64
72
( results. results [ 0 ] . user * 1000.0 ) as u64 ,
65
73
) ,
66
74
(
67
- "compile-time .system". to_string ( ) ,
75
+ format ! ( "{key} .system") ,
68
76
( results. results [ 0 ] . system * 1000.0 ) as u64 ,
69
77
) ,
78
+ (
79
+ format ! ( "{key}.min" ) ,
80
+ ( results. results [ 0 ] . min * 1000.0 ) as u64 ,
81
+ ) ,
82
+ (
83
+ format ! ( "{key}.max" ) ,
84
+ ( results. results [ 0 ] . max * 1000.0 ) as u64 ,
85
+ ) ,
70
86
] )
71
87
}
72
88
}
@@ -78,6 +94,8 @@ struct Hyperfine {
78
94
#[ derive( Deserialize ) ]
79
95
struct HyperfineResults {
80
96
mean : f32 ,
97
+ max : f32 ,
98
+ min : f32 ,
81
99
stddev : Option < f32 > ,
82
100
median : f32 ,
83
101
user : f32 ,
0 commit comments