Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] tvb allocator (was: Re: [Wireshark-commits] master b6d20a2: Opti

From: Jakub Zawadzki <darkjames-ws@xxxxxxxxxxxx>
Date: Fri, 11 Jul 2014 08:58:57 +0200
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.