# HG changeset patch # User Simon Sapin # Date 2021-04-27 15:49:38 # Node ID c92e6376257352149e8f4ebc1a2154d0efc67db2 # Parent 60d852ae7e7b5a4d2c29183bb2cb9dc0805351bf dirstate-tree: Add #[timed] attribute to `status` and `DirstateMap::read` When running with a `RUST_LOG=trace` environment variable, the `micro_timer` crate prints the duration taken by each call to functions with that attribute. Differential Revision: https://phab.mercurial-scm.org/D10552 diff --git a/rust/hg-core/src/dirstate_tree/dirstate_map.rs b/rust/hg-core/src/dirstate_tree/dirstate_map.rs --- a/rust/hg-core/src/dirstate_tree/dirstate_map.rs +++ b/rust/hg-core/src/dirstate_tree/dirstate_map.rs @@ -1,4 +1,5 @@ use bytes_cast::BytesCast; +use micro_timer::timed; use std::path::PathBuf; use std::{collections::BTreeMap, convert::TryInto}; @@ -499,6 +500,7 @@ impl super::dispatch::DirstateMapMethods self.dirty_parents = true; } + #[timed] fn read<'a>( &mut self, file_contents: &'a [u8], diff --git a/rust/hg-core/src/dirstate_tree/status.rs b/rust/hg-core/src/dirstate_tree/status.rs --- a/rust/hg-core/src/dirstate_tree/status.rs +++ b/rust/hg-core/src/dirstate_tree/status.rs @@ -13,6 +13,7 @@ use crate::HgPathBuf; use crate::PatternFileWarning; use crate::StatusError; use crate::StatusOptions; +use micro_timer::timed; use rayon::prelude::*; use std::borrow::Cow; use std::io; @@ -29,6 +30,7 @@ use std::sync::Mutex; /// and its use of `itertools::merge_join_by`. When reaching a path that only /// exists in one of the two trees, depending on information requested by /// `options` we may need to traverse the remaining subtree. +#[timed] pub fn status<'tree>( dmap: &'tree mut DirstateMap, matcher: &(dyn Matcher + Sync),