Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] rev 32822: /trunk/epan/dissectors/ /trun
From: Anders Broman <a.broman@xxxxxxxxx>
Date: Sat, 15 May 2010 23:31:10 +0200
Gerasimos Dimitriadis skrev 2010-05-15 23:12:
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

I'm sure the GSM/UMTS related dissectors would benefit especially if "index method" can be used. Asn2wrs should perhaps be changed to use the new method. I just don't have the traces nor time to so benchmarking.
Regards
Anders

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



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