Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] rev 32822: /trunk/epan/dissectors/ /trun

From: Gerasimos Dimitriadis <gedimitr@xxxxxxxxx>
Date: Sun, 16 May 2010 00:12:16 +0300
Hi,

I did some benchmarking on the performance gains from the switch to binary search in the SANC and ISPC arrays, that I want to share with the list. The SANC array contains ~900 entries, while the 2 ISPC arrays (signalling point and operator names) contain ~5k entries each.

For this experiment, a synthetic capture file of 50000 MTP3/SCCP messages was created. Each message is based on the following template, with the OPC and DPC being randomly chosen from values existing in the ISPC array. This means that the search always leads to a match, but since this list contains all PCs currently allocated by the ITU, this is going to be the case for actual traffic too.

Message Transfer Part Level 3
   Service information octet
       00.. .... = Network indicator: International network (0x00)
       ..00 .... = Spare: 0x00
       .... 0011 = Service indicator: SCCP (0x03)
   Routing label
       .... .... .... .... ..11 1001 1110 0110 = DPC: 14822
           Signalling Area Network Code (SANC): Chile (7-060)
           Unique Signalling Point Name: ...
Signalling Point Operator Name: Compania de Telefonos de Chile - Mundo S.A.
       .... 1000 0001 1100 00.. .... .... .... = OPC: 8304
           Signalling Area Network Code (SANC): India (Republic of) (4-014)
           Unique Signalling Point Name: ISC Chennai
           Signalling Point Operator Name: M/s Dishnet Wireless Ltd
0011 .... .... .... .... .... .... .... = Signalling Link Selector: 3
Signalling Connection Control Part
   Message Type: Released (0x04)
   Destination Local Reference: 0xffda05
   Source Local Reference: 0x1001df
   Release Cause: End user originated (0x00)
   Pointer to Optional parameter: 0

In each scenario (linear / binary search), tshark -V was run 3 times with the output redirected to /dev/null. The averages are provided below, showing that the performance improvements are substantial:
Linear Search: real 6.302s - user 5.355s - sys 0.738s
Binary Search: real 4.868s - user 4.004s - sys 0.697s

Regards
Gerasimos

http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=32822

User: dimeg
Date: 2010/05/15 01:14 PM

Log:
 Use binary search when scanning the SANC and ISPC lists; correct a couple of
 double entries in the ISPC lists.

Directory: /trunk/epan/dissectors/
  Changes    Path             Action
  +9 -7      packet-q708.c    Modified

___________________________________________________________________________
Sent via:    Wireshark-commits mailing list <wireshark-commits@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-commits
Unsubscribe: https://wireshark.org/mailman/options/wireshark-commits
             mailto:wireshark-commits-request@xxxxxxxxxxxxx?subject=unsubscribe