Wireshark mailing list archives

Re: The cost of memory allocation


From: Graham Bloice <graham.bloice () trihedral com>
Date: Wed, 21 Sep 2016 09:49:15 +0100

On 21 September 2016 at 09:29, Paul Offord <Paul.Offord () advance7 com> wrote:

I’m not happy with the performance of the transum dissector and so I’ve
started some analysis.  I’ve never used VS performance profiling before but
I plan try to investigate this problem using it.  In the meantime I’ve used
a tool that I’m reasonably familiar with called PerfView.  It’s produced
some interesting results which I thought I’d share.



The problem I’m having is that with transum enabled load time for a 50MB
file increases from 5 seconds to 10 seconds, but then subsequent loads of
the same file go out to about 40 or 50 seconds.





Above (or attached depending on your email system) is a screen shot
showing the time spent in various functions when a load of the file took
44.8 seconds.  At the top of the image is a transum function called
decode_gtcp.  The image shows that 50.7% of the total load time was spent
executing in this function.  Then we see all of the nested functions with
the proportion of time spent in each of those.



What I notice is that a lot of time is being spent in glib functions, and
in particular the time is being spent allocating and freeing memory.





Using a slightly different view we can see that across the whole of the
process during a load file with transum enabled more than 66% of the time
is spent messing around with memory.



I haven’t yet figured out why I get inconsistent load times, and I don’t
know what I can do about any of the above, but I thought it might be of
general interest.



Best regards…Paul


Release or debug build?

-- 
Graham Bloice

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

Current thread: