Opened 9 years ago

Closed 7 years ago

#3504 closed defect (wontfix)

Entering a chatroom with many participants burns your cpu

Reported by: gareuselesinge@… Owned by: asterix
Priority: normal Milestone:
Component: None Version:
Severity: normal Keywords:
Cc: Blocked By:
Blocking: OS: All


Try to enter this chatroom:…

It is usually pretty crowd, and on my 2ghz amd64 it takes like 10 seconds of complete CPU usage to fill in the participants list. I agree that jabber conference rooms are usually not so crowd, and thus it not worth spending time optimizing this operation, but here it really seems there is a bad piece of code since performances are incredibly bad.


Change History (6)

comment:1 Changed 7 years ago by asterix

  • Resolution set to wontfix
  • Status changed from new to closed

it takes indeed some seconds here too (2-3) But that doesn't prevent using Gajim to talk in another tab.

comment:2 Changed 7 years ago by johnny

i still think there is room for optimization.

but i'd like to know how the original ticket author connects to irc? if it is ejabberd transport. it could be that ejabberd transport is the problem in that it says prints all users joining in the room itself unnecessarily. This behaviour does burn lots of cpu. I wonder if we can get them to hide that on first connect, as the behaviour would still be useful for netsplits

comment:3 Changed 7 years ago by johnny

  • Resolution wontfix deleted
  • Status changed from closed to reopened

comment:4 Changed 7 years ago by asterix

if it's ejabberd, it's not us. Gajim doesn't print status changement on connection time. If it's not Gajim, I don't see what we could o: a few seconds to draw ~400 contacts doesn't sound a lot to me. And it doesn't freeze GUI at all.

comment:5 Changed 7 years ago by johnny

i tried this with non ejabberd transport, and i still think it shouldn't use so much cpu on a 1.5ghz

comment:6 Changed 7 years ago by johnny

  • Resolution set to wontfix
  • Status changed from reopened to closed

i've reconsidered, let's close this, best we can hope for is that the refactoring code will help.. after all we can only do so much as we rely on python.

Note: See TracTickets for help on using tickets.