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.