Be consistent about deciding whether to print pass data.
`print_time_passes_entry` unconditionally prints data about a pass. The most commonly used call site, in `VerboseTimingGuard::drop`, guards it with a `should_print_passes` test. But there are a couple of other call sites that don't do that test. This commit moves the `should_print_passes` test within `print_time_passes_entry` so that all passes are treated equally.
This commit is contained in:
parent
9110d925d0
commit
4e8faff3a1
1 changed files with 21 additions and 19 deletions
|
@ -733,35 +733,37 @@ impl Drop for VerboseTimingGuard<'_> {
|
||||||
if let Some((start_time, start_rss, ref message)) = self.start_and_message {
|
if let Some((start_time, start_rss, ref message)) = self.start_and_message {
|
||||||
let end_rss = get_resident_set_size();
|
let end_rss = get_resident_set_size();
|
||||||
let dur = start_time.elapsed();
|
let dur = start_time.elapsed();
|
||||||
|
print_time_passes_entry(&message, dur, start_rss, end_rss);
|
||||||
if should_print_passes(dur, start_rss, end_rss) {
|
|
||||||
print_time_passes_entry(&message, dur, start_rss, end_rss);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn should_print_passes(dur: Duration, start_rss: Option<usize>, end_rss: Option<usize>) -> bool {
|
|
||||||
if dur.as_millis() > 5 {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if let (Some(start_rss), Some(end_rss)) = (start_rss, end_rss) {
|
|
||||||
let change_rss = end_rss.abs_diff(start_rss);
|
|
||||||
if change_rss > 0 {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
false
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn print_time_passes_entry(
|
pub fn print_time_passes_entry(
|
||||||
what: &str,
|
what: &str,
|
||||||
dur: Duration,
|
dur: Duration,
|
||||||
start_rss: Option<usize>,
|
start_rss: Option<usize>,
|
||||||
end_rss: Option<usize>,
|
end_rss: Option<usize>,
|
||||||
) {
|
) {
|
||||||
|
// Print the pass if its duration is greater than 5 ms, or it changed the
|
||||||
|
// measured RSS.
|
||||||
|
let is_notable = || {
|
||||||
|
if dur.as_millis() > 5 {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let (Some(start_rss), Some(end_rss)) = (start_rss, end_rss) {
|
||||||
|
let change_rss = end_rss.abs_diff(start_rss);
|
||||||
|
if change_rss > 0 {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
false
|
||||||
|
};
|
||||||
|
if !is_notable() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let rss_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as usize;
|
let rss_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as usize;
|
||||||
let rss_change_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as i128;
|
let rss_change_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as i128;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue