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-comm...@wireshark.org> > Archives: http://www.wireshark.org/lists/wireshark-commits > Unsubscribe: https://wireshark.org/mailman/options/wireshark-commits > > mailto:wireshark-commits-requ...@wireshark.org?subject=unsubscribe > > > ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe