I use list_extract_first to grab messages from the queue, and
list_append to add messages to the queue - both are very slow if the
list gets too long (a couple of handreds can cause noticable slowing).
except for calling list_len on every list_append, I don't use any other
list_ functions.
I have a debug output on the loops that do append and extract. normally
the tight extract loop should extract MAX_MESSAGES in under a second,
but as the list grows, it takes it more time to complete the loop.
--
Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]
Did you know that "if" is the middle of the word "life"?
-- from "Apocalypse Now"
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Paul Keogh
> Sent: Thursday, March 21, 2002 12:37 PM
> To: 'Kannel-devel (E-mail)'
> Subject: RE: [BUG] list implementation too slow.
>
>
> > Lately we've been doing some very high capacity testing on
> > Kannel , and
> > found out some interesting stuff. mainly as queues (managed
> by lists)
> > are filling up to over a few hundreds of messages, the boxes start
> > thrashing.
> > I think this is directly related to the List implementation -
> > it's just
> > too sssslllloooowwww. when we have more then a few hundreds
> > of messages
> > in the List, extracting one item can sometimes take anywhere
> > from 2 to 4
> > seconds (!!!).
> >
> > Does any one have any information or experience regarding that ?
>
> Do you have any insight into which particular list_() functions are
> causing this ? Some of the comments in list.c suggest possible
> inefficiencies, notably where the list has to grow to accomodate
> insert/append operations. Also, all of the list search functions
> are linear.
>
> How are you measuring time spend in functions ? Quantify ?
>
>
>