Wireshark mailing list archives
Re: [Wireshark-commits] master b6d20a2: Optimize reseting epan_dissect_t when filtering.
From: Jakub Zawadzki <darkjames-ws () darkjames pl>
Date: Sat, 21 Jun 2014 22:12:48 +0200
Hi Evan, On Thu, Jun 19, 2014 at 04:40:06PM -0700, Evan Huus wrote:
On Thu, Jun 19, 2014 at 4:33 PM, Wireshark code review <code-review-do-not-reply () wireshark org> wrote:URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b6d20a27a149c1b09f17561f972d0f45a41de992 Submitter: Anders Broman (a.broman58 () gmail com) Changed: branch: master Repository: wireshark Commits: b6d20a2 by Jakub Zawadzki (darkjames () darkjames pl): Optimize reseting epan_dissect_t when filtering. Don't destroy interesting_hfids hash table, just remove all values. [cut]Another possible improvement, rather than g_mallocing the elements in the hash table, we could put them in the pinfo pool, which is always freed when proto_tree_reset or proto_tree_free are called...
Sure, we can do it, but it looks for me < 1%. 18,116,612,393 PROGRAM TOTALS wmem might reduce *a little* this 93M Ir below: 266,173,051 * ???:proto_tree_add_node [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0] 63,201,727 > ???:g_ptr_array_add (291740x) [/usr/lib64/libglib-2.0.so.0.3600.4] 30,049,112 > ???:g_ptr_array_new (291740x) [/usr/lib64/libglib-2.0.so.0.3600.4] + we will get rid of 74M Ir. 79,962,317 * ???:free_GPtrArray_value [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0] 74,419,257 > ???:g_ptr_array_free (291740x) [/usr/lib64/libglib-2.0.so.0.3600.4] For now I'm not optimizating anything which gives < 1%, but I think Anders will be grateful for any optimizations. 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] - pinfo->proto_data, fd->pfd (~0.7%, or 1.2% when no filtering) 194,007,044 * ???:p_add_proto_data [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0] 122,865,401 > ???:g_slist_insert_sorted (893907x) [/usr/lib64/libglib-2.0.so.0.3600.4] [more than 50% in slice allocator] 739,310,064 * ???:epan_dissect_reset [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0] 68,198,431 > ???:g_slist_free (583479x) [/usr/lib64/libglib-2.0.so.0.3600.4] 24,222,093 * ???:frame_data_destroy [/tmp/wireshark/epan/.libs/libwireshark.so.0.0.0] 21,616,060 > ???:g_slist_free (187951x) [/usr/lib64/libglib-2.0.so.0.3600.4] This, or next week I'll try to do tvb. Cheers, Jakub. ___________________________________________________________________________ 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-request () wireshark org?subject=unsubscribe
Current thread:
- Re: [Wireshark-commits] master b6d20a2: Optimize reseting epan_dissect_t when filtering. Evan Huus (Jun 19)
- Re: [Wireshark-commits] master b6d20a2: Optimize reseting epan_dissect_t when filtering. Jakub Zawadzki (Jun 21)