Skip to content

Commit cb9a136

Browse files
committed
Use wait4 instead of getrusage
1 parent f88851c commit cb9a136

File tree

9 files changed

+154
-149
lines changed

9 files changed

+154
-149
lines changed

Diff for: src/benchmark/benchmark_result.rs

+6-7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ pub struct BenchmarkRun {
1818

1919
/// Time spent in kernel mode
2020
pub system_time: Second,
21+
22+
/// Maximum memory usage of the process, in bytes
23+
pub memory_usage_byte: u64,
24+
25+
/// Exit codes of the process
26+
pub exit_code: Option<i32>,
2127
}
2228

2329
/// Set of values that will be exported.
@@ -36,13 +42,6 @@ pub struct BenchmarkResult {
3642
/// All run time measurements
3743
pub runs: Vec<BenchmarkRun>,
3844

39-
/// Maximum memory usage of the process, in bytes
40-
#[serde(skip_serializing_if = "Option::is_none")]
41-
pub memory_usage_byte: Option<Vec<u64>>,
42-
43-
/// Exit codes of all command invocations
44-
pub exit_codes: Vec<Option<i32>>,
45-
4645
/// Parameter values for this benchmark
4746
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
4847
pub parameters: BTreeMap<String, String>,

Diff for: src/benchmark/mod.rs

+18-8
Original file line numberDiff line numberDiff line change
@@ -448,15 +448,25 @@ impl<'a> Benchmark<'a> {
448448
command_with_unused_parameters: self.command.get_name_with_unused_parameters(),
449449
runs: times_real
450450
.iter()
451-
.zip(times_user.iter().zip(times_system.iter()))
452-
.map(|(wall_clock_time, (user_time, system_time))| BenchmarkRun {
453-
wall_clock_time: *wall_clock_time,
454-
user_time: *user_time,
455-
system_time: *system_time,
456-
})
451+
.zip(times_user.iter())
452+
.zip(times_system.iter())
453+
.zip(memory_usage_byte.iter())
454+
.zip(exit_codes.iter())
455+
.map(
456+
|(
457+
(((wall_clock_time, user_time), system_time), memory_usage_byte),
458+
exit_code,
459+
)| {
460+
BenchmarkRun {
461+
wall_clock_time: *wall_clock_time,
462+
user_time: *user_time,
463+
system_time: *system_time,
464+
memory_usage_byte: *memory_usage_byte,
465+
exit_code: *exit_code,
466+
}
467+
},
468+
)
457469
.collect(),
458-
memory_usage_byte: Some(memory_usage_byte),
459-
exit_codes,
460470
parameters: self
461471
.command
462472
.get_parameters()

Diff for: src/benchmark/relative_speed.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ fn create_result(name: &str, mean: Scalar) -> BenchmarkResult {
131131
wall_clock_time: mean,
132132
user_time: mean,
133133
system_time: 0.,
134+
memory_usage_byte: 1024,
135+
exit_code: Some(0),
134136
}],
135-
memory_usage_byte: None,
136-
exit_codes: Vec::new(),
137137
parameters: BTreeMap::new(),
138138
}
139139
}

Diff for: src/benchmark/scheduler.rs

+8-12
Original file line numberDiff line numberDiff line change
@@ -193,29 +193,25 @@ fn scheduler_basic() -> Result<()> {
193193
- wall_clock_time: 0.123
194194
user_time: 0
195195
system_time: 0
196+
memory_usage_byte: 0
197+
exit_code: 0
196198
- wall_clock_time: 0.123
197199
user_time: 0
198200
system_time: 0
199-
memory_usage_byte:
200-
- 0
201-
- 0
202-
exit_codes:
203-
- 0
204-
- 0
201+
memory_usage_byte: 0
202+
exit_code: 0
205203
- command: sleep 0.456
206204
runs:
207205
- wall_clock_time: 0.456
208206
user_time: 0
209207
system_time: 0
208+
memory_usage_byte: 0
209+
exit_code: 0
210210
- wall_clock_time: 0.456
211211
user_time: 0
212212
system_time: 0
213-
memory_usage_byte:
214-
- 0
215-
- 0
216-
exit_codes:
217-
- 0
218-
- 0
213+
memory_usage_byte: 0
214+
exit_code: 0
219215
"#);
220216

221217
Ok(())

Diff for: src/export/csv.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,24 @@ fn test_csv() {
7777
wall_clock_time: 7.0,
7878
user_time: 7.0,
7979
system_time: 0.0,
80+
memory_usage_byte: 1024,
81+
exit_code: Some(0),
8082
},
8183
BenchmarkRun {
8284
wall_clock_time: 8.0,
8385
user_time: 8.0,
8486
system_time: 0.0,
87+
memory_usage_byte: 1024,
88+
exit_code: Some(0),
8589
},
8690
BenchmarkRun {
8791
wall_clock_time: 12.0,
8892
user_time: 12.0,
8993
system_time: 0.0,
94+
memory_usage_byte: 1024,
95+
exit_code: Some(0),
9096
},
9197
],
92-
memory_usage_byte: None,
93-
exit_codes: vec![Some(0), Some(0), Some(0)],
9498
parameters: {
9599
let mut params = BTreeMap::new();
96100
params.insert("foo".into(), "one".into());
@@ -106,20 +110,24 @@ fn test_csv() {
106110
wall_clock_time: 17.0,
107111
user_time: 17.0,
108112
system_time: 0.0,
113+
memory_usage_byte: 1024,
114+
exit_code: Some(0),
109115
},
110116
BenchmarkRun {
111117
wall_clock_time: 18.0,
112118
user_time: 18.0,
113119
system_time: 0.0,
120+
memory_usage_byte: 1024,
121+
exit_code: Some(0),
114122
},
115123
BenchmarkRun {
116124
wall_clock_time: 19.0,
117125
user_time: 19.0,
118126
system_time: 0.0,
127+
memory_usage_byte: 1024,
128+
exit_code: Some(0),
119129
},
120130
],
121-
memory_usage_byte: None,
122-
exit_codes: vec![Some(0), Some(0), Some(0)],
123131
parameters: {
124132
let mut params = BTreeMap::new();
125133
params.insert("foo".into(), "one".into());

Diff for: src/export/tests.rs

+48-16
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,24 @@ fn test_markup_export_auto_ms() {
3232
wall_clock_time: 0.09,
3333
user_time: 0.09,
3434
system_time: 0.,
35+
memory_usage_byte: 1024,
36+
exit_code: Some(0),
3537
},
3638
BenchmarkRun {
3739
wall_clock_time: 0.10,
3840
user_time: 0.10,
3941
system_time: 0.,
42+
memory_usage_byte: 1024,
43+
exit_code: Some(0),
4044
},
4145
BenchmarkRun {
4246
wall_clock_time: 0.14,
4347
user_time: 0.14,
4448
system_time: 0.,
49+
memory_usage_byte: 1024,
50+
exit_code: Some(0),
4551
},
4652
],
47-
memory_usage_byte: None,
48-
exit_codes: vec![Some(0), Some(0), Some(0)],
4953
parameters: BTreeMap::new(),
5054
},
5155
BenchmarkResult {
@@ -56,20 +60,24 @@ fn test_markup_export_auto_ms() {
5660
wall_clock_time: 2.0,
5761
user_time: 2.0,
5862
system_time: 0.,
63+
memory_usage_byte: 1024,
64+
exit_code: Some(0),
5965
},
6066
BenchmarkRun {
6167
wall_clock_time: 3.0,
6268
user_time: 3.0,
6369
system_time: 0.,
70+
memory_usage_byte: 1024,
71+
exit_code: Some(0),
6472
},
6573
BenchmarkRun {
6674
wall_clock_time: 4.0,
6775
user_time: 4.0,
6876
system_time: 0.,
77+
memory_usage_byte: 1024,
78+
exit_code: Some(0),
6979
},
7080
],
71-
memory_usage_byte: None,
72-
exit_codes: vec![Some(0), Some(0), Some(0)],
7381
parameters: BTreeMap::new(),
7482
},
7583
];
@@ -125,20 +133,24 @@ fn test_markup_export_auto_s() {
125133
wall_clock_time: 2.1,
126134
user_time: 2.1,
127135
system_time: 0.,
136+
memory_usage_byte: 1024,
137+
exit_code: Some(0),
128138
},
129139
BenchmarkRun {
130140
wall_clock_time: 2.2,
131141
user_time: 2.2,
132142
system_time: 0.,
143+
memory_usage_byte: 1024,
144+
exit_code: Some(0),
133145
},
134146
BenchmarkRun {
135147
wall_clock_time: 2.3,
136148
user_time: 2.3,
137149
system_time: 0.,
150+
memory_usage_byte: 1024,
151+
exit_code: Some(0),
138152
},
139153
],
140-
memory_usage_byte: None,
141-
exit_codes: vec![Some(0), Some(0), Some(0)],
142154
parameters: BTreeMap::new(),
143155
},
144156
BenchmarkResult {
@@ -149,20 +161,24 @@ fn test_markup_export_auto_s() {
149161
wall_clock_time: 0.1,
150162
user_time: 0.1,
151163
system_time: 0.,
164+
memory_usage_byte: 1024,
165+
exit_code: Some(0),
152166
},
153167
BenchmarkRun {
154168
wall_clock_time: 0.2,
155169
user_time: 0.2,
156170
system_time: 0.,
171+
memory_usage_byte: 1024,
172+
exit_code: Some(0),
157173
},
158174
BenchmarkRun {
159175
wall_clock_time: 0.3,
160176
user_time: 0.3,
161177
system_time: 0.,
178+
memory_usage_byte: 1024,
179+
exit_code: Some(0),
162180
},
163181
],
164-
memory_usage_byte: None,
165-
exit_codes: vec![Some(0), Some(0), Some(0)],
166182
parameters: BTreeMap::new(),
167183
},
168184
];
@@ -218,20 +234,24 @@ fn test_markup_export_manual_ms() {
218234
wall_clock_time: 2.1,
219235
user_time: 2.1,
220236
system_time: 0.,
237+
memory_usage_byte: 1024,
238+
exit_code: Some(0),
221239
},
222240
BenchmarkRun {
223241
wall_clock_time: 2.2,
224242
user_time: 2.2,
225243
system_time: 0.,
244+
memory_usage_byte: 1024,
245+
exit_code: Some(0),
226246
},
227247
BenchmarkRun {
228248
wall_clock_time: 2.3,
229249
user_time: 2.3,
230250
system_time: 0.,
251+
memory_usage_byte: 1024,
252+
exit_code: Some(0),
231253
},
232254
],
233-
memory_usage_byte: None,
234-
exit_codes: vec![Some(0), Some(0), Some(0)],
235255
parameters: BTreeMap::new(),
236256
},
237257
BenchmarkResult {
@@ -242,20 +262,24 @@ fn test_markup_export_manual_ms() {
242262
wall_clock_time: 0.1,
243263
user_time: 0.1,
244264
system_time: 0.,
265+
memory_usage_byte: 1024,
266+
exit_code: Some(0),
245267
},
246268
BenchmarkRun {
247269
wall_clock_time: 0.2,
248270
user_time: 0.2,
249271
system_time: 0.,
272+
memory_usage_byte: 1024,
273+
exit_code: Some(0),
250274
},
251275
BenchmarkRun {
252276
wall_clock_time: 0.3,
253277
user_time: 0.3,
254278
system_time: 0.,
279+
memory_usage_byte: 1024,
280+
exit_code: Some(0),
255281
},
256282
],
257-
memory_usage_byte: None,
258-
exit_codes: vec![Some(0), Some(0), Some(0)],
259283
parameters: BTreeMap::new(),
260284
},
261285
];
@@ -310,20 +334,24 @@ fn test_markup_export_manual_s() {
310334
wall_clock_time: 2.01,
311335
user_time: 2.01,
312336
system_time: 0.,
337+
memory_usage_byte: 1024,
338+
exit_code: Some(0),
313339
},
314340
BenchmarkRun {
315341
wall_clock_time: 2.02,
316342
user_time: 2.02,
317343
system_time: 0.,
344+
memory_usage_byte: 1024,
345+
exit_code: Some(0),
318346
},
319347
BenchmarkRun {
320348
wall_clock_time: 2.03,
321349
user_time: 2.03,
322350
system_time: 0.,
351+
memory_usage_byte: 1024,
352+
exit_code: Some(0),
323353
},
324354
],
325-
memory_usage_byte: None,
326-
exit_codes: vec![Some(0), Some(0), Some(0)],
327355
parameters: BTreeMap::new(),
328356
},
329357
BenchmarkResult {
@@ -334,20 +362,24 @@ fn test_markup_export_manual_s() {
334362
wall_clock_time: 0.11,
335363
user_time: 0.11,
336364
system_time: 0.,
365+
memory_usage_byte: 1024,
366+
exit_code: Some(0),
337367
},
338368
BenchmarkRun {
339369
wall_clock_time: 0.12,
340370
user_time: 0.12,
341371
system_time: 0.,
372+
memory_usage_byte: 1024,
373+
exit_code: Some(0),
342374
},
343375
BenchmarkRun {
344376
wall_clock_time: 0.13,
345377
user_time: 0.13,
346378
system_time: 0.,
379+
memory_usage_byte: 1024,
380+
exit_code: Some(0),
347381
},
348382
],
349-
memory_usage_byte: None,
350-
exit_codes: vec![Some(0), Some(0), Some(0)],
351383
parameters: BTreeMap::new(),
352384
},
353385
];

0 commit comments

Comments
 (0)