mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 10:39:02 -04:00
Optimized WHO command
On our server hosting 150K users we noticed that the WHO command was high on the perf capture profile and on closer inspection we noticed that the majority of users do not have the invisible mode set. Since IsModeSet is a small inline function that does an array lookup we were able to reduce server load by calling IsModeSet first to short-circuit the comparatively expensive SharesChannelWith call.
This commit is contained in:
parent
41293a058d
commit
d2df7b24c0
@ -445,7 +445,7 @@ void CommandWho::WhoUsers(LocalUser* source, const std::vector<std::string>& par
|
||||
User* user = GetUser(iter);
|
||||
|
||||
// Only show users in response to a fuzzy WHO if we can see them normally.
|
||||
bool can_see_normally = user == source || source->SharesChannelWith(user) || !user->IsModeSet(invisiblemode);
|
||||
bool can_see_normally = user == source || !user->IsModeSet(invisiblemode) || source->SharesChannelWith(user);
|
||||
if (data.fuzzy_match && !can_see_normally && !source_has_users_auspex)
|
||||
continue;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user