Ethereal-dev: Re: [Ethereal-dev] Reassembling out of order packets

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Jerry Talkington <jtalkington@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 28 Oct 2004 13:47:06 -0700
On Thu, Oct 28, 2004 at 12:40:52PM -0700, Guy Harris wrote:
> Jerry Talkington said:
> > req_resp_hdrs_do_reassembly() needs to be revisted anyway, since it
> > seems to cause a huge performance hit when loading large HTTP responses.
> 
> Are you certain that the performance hit is due specifically to
> "req_resp_hdrs_do_reassembly()", rather than due to either

Nope, not at all.
 
>     1) the reassembly code being slow reassembling *any* large packet
> 

Quite possible, I don't look at much else besides HTTP, and if I do,
it's usually something tiny like DNS.

> 
>     2) the text widget that displays the raw packet data being slow
> dealing with very large amounts of text (which it *definitely* is)

Yes, that does have some impact, but I'm usually on machines with gobs
of RAM (1 to 2 gigs, which at least used to be gobs.)

> or
> 
>     3) the code to build protocol trees, or the tree widget, being slow in
> dealing with very large protocol trees (the code to build protocol
> trees should be O(n) in the number of nodes, but the tree widget might
> be O(n^2) if, for example, it appends to lists by starting at the
> beginning of the list and scanning to find the end)?

I'll take a look at that when I get the chance.  It definitely happens
when filling the packet details pane, and again when filling in the
packet bytes pane.

-- 
GPG public key:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x9D5B8762