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 ? 
> 
>  
> 

Reply via email to