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