The biggest win, I think, would be if we can avoid calling free_chain at
all because tvbs are always allocated in the right scope and so get freed
automatically. I think this would involve touching every place that creates
new tvbs backed with glib memory though...

I will try and think about this and review your patches sometime this
weekend.


On Fri, Jul 11, 2014 at 2:58 AM, Jakub Zawadzki <[email protected]>
wrote:

> Hi,
>
> On Sat, Jun 21, 2014 at 10:12:48PM +0200, Jakub Zawadzki wrote:
> > If we're in topic of optimizing 'slower' [de]allocations in common
> functions:
> >
> > - tvb allocation/deallocation (2.5%, or 3.4% when no filtering)
> >
> >    243,931,671  *  ???:tvb_new
> [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0]
> >    202,052,290  >   ???:g_slice_alloc (2463493x)
> [/usr/lib64/libglib-2.0.so.0.3600.4]
> >
> >    291,765,126  *  ???:tvb_free_chain
> [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0]
> >    256,390,635  >   ???:g_slice_free1 (2435843x)
> [/usr/lib64/libglib-2.0.so.0.3600.4]
>
> > This, or next week I'll try to do tvb.
>
> ... or maybe this week:
>
> ver0 | 18,055,719,820 (-----------) | Base version
> 96f0585268f1cc4e820767c4038c10ed4915c12a
> ver1 | 18,185,185,838 (0.6% slower) | Change tvb allocator g_slice_* to
> wmem with file scope
> ver2 | 17,809,433,204 (1.4% faster) | Change tvb allocator g_slice_* to
> wmem with file/packet scope
> ver3 | 17,812,128,887 (1.3% faster) | Change tvb allocator g_slice_* to
> simple object allocator with epan scope
> ver4 | 17,704,132,561 (2.0% faster) | Change tvb allocator g_slice_* to
> simple object allocator with file scope
>
> I have uploaded patches & profiler outputs to:
> http://www.wireshark.org/~darkjames/tvb-opt-allocator/
>
> Please review, and check what version is OK to be applied.
>
>
> P.S: I'll might find some time to do ver5 with slab allocator, but it'll
> look like object allocator API with epan scope.
>
> Cheers,
> Jakub.
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <[email protected]>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:[email protected]
> ?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to