ircd:Ⓜ️:room::stats: Optimize byte counter with pipelined iteration.

This commit is contained in:
Jason Volk 2023-02-21 20:10:16 -08:00
parent 2060fb2993
commit 5856c2fd0e
1 changed files with 8 additions and 17 deletions

View File

@ -32,25 +32,16 @@ size_t
ircd::m::room::stats::bytes_json(const m::room &room)
{
size_t ret(0);
for(m::room::events it(room); it; --it)
const room::iterate iterate
{
const m::event::idx &event_idx
{
it.event_idx()
};
room
};
const byte_view<string_view> key
{
event_idx
};
static const db::gopts gopts
{
.cache = false,
};
ret += db::bytes_value(m::dbs::event_json, key, gopts);
}
iterate.for_each([&ret]
(const string_view &event, const auto &depth, const auto &event_idx)
{
ret += size(event);
});
return ret;
}