improve memory-usage output w/ more byte-sizes

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2025-01-01 23:49:08 +00:00 committed by strawberry
parent 33635e11d1
commit b8f8f68634
5 changed files with 92 additions and 31 deletions

View file

@ -7,7 +7,7 @@ use std::{
time::Instant,
};
use conduwuit::{error, Config, Result};
use conduwuit::{error, utils::bytes::pretty, Config, Result};
use data::Data;
use regex::RegexSet;
use ruma::{OwnedEventId, OwnedRoomAliasId, OwnedServerName, OwnedUserId, ServerName, UserId};
@ -93,13 +93,18 @@ impl crate::Service for Service {
Ok(Arc::new(s))
}
fn memory_usage(&self, out: &mut dyn Write) -> Result<()> {
let bad_event_ratelimiter = self
.bad_event_ratelimiter
.read()
.expect("locked for reading")
.len();
writeln!(out, "bad_event_ratelimiter: {bad_event_ratelimiter}")?;
fn memory_usage(&self, out: &mut dyn Write) -> Result {
let (ber_count, ber_bytes) = self.bad_event_ratelimiter.read()?.iter().fold(
(0_usize, 0_usize),
|(mut count, mut bytes), (event_id, _)| {
bytes = bytes.saturating_add(event_id.capacity());
bytes = bytes.saturating_add(size_of::<RateLimitState>());
count = count.saturating_add(1);
(count, bytes)
},
);
writeln!(out, "bad_event_ratelimiter: {ber_count} ({})", pretty(ber_bytes))?;
Ok(())
}