Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] Performance issues with the "new" rtp-analysis.c

From: "Anders Broman" <anders.broman@xxxxxxxxxxxx>
Date: Tue, 24 Feb 2009 13:54:23 +0100
Hi,
I tried reseisable=FALSE without any noticable improvment. The bug report now has a test file.
Regards
Anders

________________________________

From: wireshark-dev-bounces@xxxxxxxxxxxxx on behalf of Stephen Fisher
Sent: Tue 24/02/2009 12:37 AM
To: Developer support list for Wireshark
Subject: Re: [Wireshark-dev] Performance issues with the "new" rtp-analysis.c



On Mon, Feb 23, 2009 at 11:32:13PM +0100, Anders Broman wrote:

> There seems to be quite a performance hit with using the TreeView
> Widget:

> Does some one know if it's possible to tweak the code to get better
> performance or is it best to back out the new code and retackle The
> old bug ? https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3246 I
> don't have a sufficently large RTP trace to test with at the moment.

There are a number of tweaks available to speed up the tree view widget. 
In my testing for replacing the main packet list (a coding project I
should really finish up to show to others), I can get nearly the same
speeds as the clist with the tweaks and "freezing" of the list while
populating it along with other tweaks.  I've gone so far as to create
custom functions to mamipulate a a GtkTreeModel for the GtkTreeView,
which helps somewhat with speed and especially with customization.

To freeze & thaw the updating of the GtkTreeView with every update to
the GtkTreeModel, use something like the following:

void
new_packet_list_freeze(void)
{
        /* So we don't lose the model by the time we want to thaw it */
        g_object_ref(packetlist);

        /* Detach view from model */
        gtk_tree_view_set_model(GTK_TREE_VIEW(packetlist->view), NULL);
}

void
new_packet_list_thaw(void)
{
        /* Remove the ref added by new_packet_list_freeze() */
        g_object_unref(packetlist);

        /* Re-attach view to the model */
        gtk_tree_view_set_model(GTK_TREE_VIEW(packetlist->view),
                                GTK_TREE_MODEL(packetlist));
}

Also turn off automatic sizing so that the columns are a fixed with:

   gtk_tree_view_column_set_sizing(col,GTK_TREE_VIEW_COLUMN_FIXED);

I haven't looked at the code you're speaking of to see if these things
are already done.  If we could get our hands on a big enough capture
file, I could take a look at the code.


Steve

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe


<<winmail.dat>>