Wireshark-dev: Re: [Wireshark-dev] Tips regarding measuring function execution times
From: Peter Wu <peter@xxxxxxxxxxxxx>
Date: Sun, 15 Oct 2017 21:32:09 +0100
On Sat, Oct 14, 2017 at 02:18:39PM +0000, Paul Offord wrote:
> I'm investigating a performance problem with the TRANSUM dissector.  I'd like to measure the accumulated time taken to execute a function in a Release build.  My basic idea is to do something like this:
> 
> guint32 execute_time_us;
> .
> .
> start_stopwatch(&execute_time_us);
> function_call_to_be_measured();
> pause_stopwatch(&execute_time_us);
> 
> .
> .
> .
> 
> stop_and_output_stopwatch(&execute_time_us);
> 
> Is there a standard way to do this in Wireshark?  How can I output the accumulated time on, say, the Status Line?

Not sure about the Status line question, but you can measure elapsed
microseconds with something like:

    guint64 start_time, end_time;

    start_time = g_get_monotonic_time();
    // ...
    end_time = g_get_monotonic_time();
    // ...
    g_print("elapsed us: %" G_GUINT64_FORMAT, end_time - start_time);

https://developer.gnome.org/glib/stable/glib-Date-and-Time-Functions.html#g-get-monotonic-time
-- 
Kind regards,
Peter Wu
https://lekensteyn.nl