Large chat room performance again
fredrik at dolda2000.com
Sat Apr 14 23:02:54 EDT 2007
On Sat, 2007-04-14 at 12:26 -0500, Richard Laager wrote:
> On Sat, 2007-04-14 at 18:31 +0200, Fredrik Tolf wrote:
> > Hi list!
> > This is my third post to this list regarding this topic, so I'm at it
> > again. :)
> > I've gotten my previous issues to work now, but there seems to be a
> > performance issue with the GTK user list when the user count is ~10000.
> > In my attempts to profile it, I compiled beta6 with debug flags and
> > interrupted it at some points with gdb. The majority of the interrupts,
> > it wasn't possible to get a good stack trace (since the code was running
> > deep in Gtk/Pango which weren't compiled with debugging), but the times
> > I did get a reliable trace, it seemed to be running in
> > gtkconv.c:sort_chat_users(), which seems called by a autosorting
> > GtkListStore.
> Is the problem here that sorting is just too slow, or that the
> GtkListStore does at least some sorting on every insert? Have you tried
> disabling the sorting from pidgin_conv_chat_add_users before you insert
> a huge block of users and then re-enabling it after?
I don't think that would solve anything. Maybe it could make the initial
creation of the chat room faster, but once it's running after that, I
never insert a "block" of users anyway. Joins and leaves still happen
seldomly enough (~1/s) to be handled individually. But either way, how
does one actually disable sorting during that time? I haven't found any
function that does that.
More information about the Devel