On 15-10-2017 21:32, Peter Wu wrote:
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
I think console output doesn't work on Windows for graphical
applications, or something like that. There isn't a better standard
mechanism for debug output in Wireshark, that I know of.