Just one perhaps stoooopid question, but are we already generating the UI entries for *all* packets while only showing a small portion of it? Just imagine creating an app with 100,000 buttons of which only 20 are visible all the time...
In one "button party project" I dimensioned the scrollbars according to the number of entries, but limited the UI components to the strict minimum. Moving the scrollbar would then only result in updating the labels of the UI objects. Resizing the window yields a recomputation of the number of UI objects to display. Maybe we're already doing so, but I'm not a GTK expert and not really familiar with the current Ethereal GUI code for the packet, tree and byte view panes. A second performance increase proposal I had in mind is to use hash lookup instead of sequential lookup for large value_string tables. Part of this can be done with #define's (where either the existing linear lookup or the the yet-to-define hash lookup can be chosen), and the remaining part can be produced with scripts (similar to makeregdotc). But if we're eliminating the number of (re)dissection passes this may not be relevant anymore... Regards, Olivier
