1
1
//! Execute benchmarks in a sysroot.
2
2
3
+ use std:: cmp;
3
4
use std:: env;
4
5
use std:: path:: { Path , PathBuf } ;
5
6
use std:: process:: Command ;
@@ -104,7 +105,7 @@ impl Benchmark {
104
105
105
106
let mut patches = Vec :: new ( ) ;
106
107
for patch_run in patch_runs {
107
- let n = patch_run. runs . len ( ) ;
108
+ // let n = patch_run.runs.len();
108
109
let mut runs = patch_run. runs . into_iter ( ) ;
109
110
let Run { mut passes, mut stats, name : _ } = runs. next ( ) . unwrap ( ) ;
110
111
for run in runs {
@@ -113,25 +114,25 @@ impl Benchmark {
113
114
Some ( b) => b,
114
115
None => bail ! ( "expected name {} to exist in both a and b" , a. name) ,
115
116
} ;
116
- a. time += b. time ;
117
- a. mem += b. mem ;
117
+ a. time = f64 :: min ( a . time , b. time ) ;
118
+ a. mem = cmp :: min ( a . mem , b. mem ) ;
118
119
}
119
120
120
121
for a in & mut stats {
121
122
let b = match run. stats . iter ( ) . find ( |p| p. name == a. name ) {
122
123
Some ( b) => b,
123
124
None => bail ! ( "expected name {} to exist in both a and b" , a. name) ,
124
125
} ;
125
- a. cnt += b. cnt ;
126
+ a. cnt = f64 :: min ( a . cnt , b. cnt ) ;
126
127
}
127
128
}
128
- for pass in & mut passes {
129
- pass. time /= n as f64 ;
130
- pass. mem /= n as u64 ;
131
- }
132
- for stat in & mut stats {
133
- stat. cnt /= n as f64 ;
134
- }
129
+ // for pass in &mut passes {
130
+ // pass.time /= n as f64;
131
+ // pass.mem /= n as u64;
132
+ // }
133
+ // for stat in &mut stats {
134
+ // stat.cnt /= n as f64;
135
+ // }
135
136
patches. push ( Patch {
136
137
name : patch_run. name . clone ( ) ,
137
138
patch : patch_run. patch . clone ( ) ,
0 commit comments