diff options
author | qkzk <qu3nt1n@gmail.com> | 2023-01-30 12:58:53 +0100 |
---|---|---|
committer | qkzk <qu3nt1n@gmail.com> | 2023-01-30 12:58:53 +0100 |
commit | c70458f7684440d3c3fe20907c2f015fa61677ad (patch) | |
tree | 5bf0f3e16bf20ba10874f75f62e6190e44a84e81 | |
parent | 67efb2b66a0f36994ce5bd17897b6cad628d6974 (diff) |
mesure color cache: looks badmem_use
-rw-r--r-- | src/action_map.rs | 2 | ||||
-rw-r--r-- | src/color_cache.rs | 18 | ||||
-rw-r--r-- | src/config.rs | 1 | ||||
-rw-r--r-- | src/tab.rs | 1 |
4 files changed, 9 insertions, 13 deletions
diff --git a/src/action_map.rs b/src/action_map.rs index 737a9f2..1419cf4 100644 --- a/src/action_map.rs +++ b/src/action_map.rs @@ -83,7 +83,7 @@ impl ActionMap { /// Makes the junction between `Actions` and `Events`. /// Every Action links to a different `EventExec` method. pub fn matcher(&self, status: &mut Status) -> FmResult<()> { - eprintln!("status color uses {}", status.dynamic_usage()); + eprintln!("status uses {}", status.dynamic_usage()); let current_tab = status.selected(); match *self { ActionMap::Back => EventExec::event_back(status), diff --git a/src/color_cache.rs b/src/color_cache.rs index b1259db..9cb34b2 100644 --- a/src/color_cache.rs +++ b/src/color_cache.rs @@ -17,22 +17,20 @@ impl ColorCache { /// Returns a color for any possible extension. /// The color is cached within the struct, avoiding multiple calculations. pub fn extension_color(&self, extension: &str) -> Color { - if let Some(color) = self.cache.borrow().get(extension) { + let mut cache = self.cache.borrow_mut(); + if let Some(color) = cache.get(extension) { color.to_owned() } else { let color = extension_color(extension); - self.cache.borrow_mut().insert(extension.to_owned(), color); + cache.insert(extension.to_owned(), color); + let size: usize = cache + .iter() + .map(|(s, _)| s.to_owned().dynamic_usage() + 8 * 3) + .sum(); + eprintln!("color uses: {}", size); color } } - - pub fn dynamic_usage(&self) -> usize { - self.cache - .borrow() - .iter() - .map(|(s, _)| s.to_owned().dynamic_usage() + 8 * 3) - .sum() - } } /// Picks a blueish/greenish color on color picker hexagon's perimeter. diff --git a/src/config.rs b/src/config.rs index 4a22d61..a940f64 100644 --- a/src/config.rs +++ b/src/config.rs @@ -104,7 +104,6 @@ impl Colors { + self.fifo.dynamic_usage() + self.socket.dynamic_usage() + self.symlink.dynamic_usage() - + self.color_cache.dynamic_usage() } fn new() -> Self { @@ -1,7 +1,6 @@ use std::path; use std::rc::Rc; -use memuse::DynamicUsage; use users::UsersCache; use crate::args::Args; |