summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-01-30 12:58:53 +0100
committerqkzk <qu3nt1n@gmail.com>2023-01-30 12:58:53 +0100
commitc70458f7684440d3c3fe20907c2f015fa61677ad (patch)
tree5bf0f3e16bf20ba10874f75f62e6190e44a84e81
parent67efb2b66a0f36994ce5bd17897b6cad628d6974 (diff)
mesure color cache: looks badmem_use
-rw-r--r--src/action_map.rs2
-rw-r--r--src/color_cache.rs18
-rw-r--r--src/config.rs1
-rw-r--r--src/tab.rs1
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 {
diff --git a/src/tab.rs b/src/tab.rs
index 0781814..c93d658 100644
--- a/src/tab.rs
+++ b/src/tab.rs
@@ -1,7 +1,6 @@
use std::path;
use std::rc::Rc;
-use memuse::DynamicUsage;
use users::UsersCache;
use crate::args::Args;