From 89e3838c4fab82add25616a4c403707a5e03da20 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 4 Jul 2019 01:50:23 -0700 Subject: [PATCH] ircd::m::room: Optimize the state::count(void) to elide key parse, value query. --- ircd/m_room.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ircd/m_room.cc b/ircd/m_room.cc index a0c19d4c5..b6a41aa5b 100644 --- a/ircd/m_room.cc +++ b/ircd/m_room.cc @@ -2129,7 +2129,20 @@ size_t ircd::m::room::state::count() const { - return count(string_view{}); + if(!present()) + return count(string_view{}); + + const db::gopts &opts + { + this->fopts? this->fopts->gopts : db::gopts{} + }; + + size_t ret(0); + auto &column{dbs::room_state}; + for(auto it{column.begin(room_id, opts)}; bool(it); ++it) + ++ret; + + return ret; } size_t