Ethereal-dev: [Ethereal-dev] Profiling summary info for CygWin GTK2 build (after column patch)

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Biot Olivier <Olivier.Biot@xxxxxxxxxxx>
Date: Tue, 2 Dec 2003 10:45:44 +0100
Hi List,

New profile information after the patches sent till 08:00 GMT. In general,
the column patch seems to speed up things considerably, as filtering now
takes about 20%-30% less time!

| I've been performing some tests with the reference capture
| http://www.ethereal.com/sample/netbench_1.cap
| used by Richard Sharpe during his tests.
| 
| I've executed the following test scenario:
| 1. $ ./ethereal -r /path/to/netbench_1.cap
| 2. Choose "frame" as display filter and hit ENTER (time this)
| 3. Chose "Clear" button (time this)
| 4. 6. 8. 10. Same as 2.
| 5. 7. 9. Same as 3.
| This way, I read the capture 10 times, 5 times without dfilter,
| and 5 times with a dfilter where all frames match.
| 
| I ran the scenario once with the attached color filters, once
| without. The top-50 in both situations is shown below. If I
| compare the results with the Native Win32 Ethereal 0.9.16
| release, then I see that both now run at the same speed. This
| means that there is probably 50% performance increase between
| the 0.9.16 build and the CVS snapshot of 8:00 GMT today!
| 
| 1. No color filters:
| ====================
| "clear": 10 seconds
Now: 8 seconds (20% less!)
| "frame": 17 seconds
Now 13 seconds (30% less!)

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
  5.04      1.18     1.18 10391321     0.00     0.00  alloc_field_info
  3.89      2.09     0.91                             proto_tree_free_node
  3.63      2.94     0.85 10391321     0.00     0.00  proto_tree_add_node
  3.54      3.77     0.83 14449632     0.00     0.00  compute_offset_length
  3.20      4.52     0.75  9571139     0.00     0.00  proto_tree_add_pi
  2.99      5.22     0.70 12282726     0.00     0.00
check_offset_length_no_exception
  2.90      5.90     0.68   256392     0.00     0.00  dissect_tcp
  2.65      6.52     0.62 10391542     0.00     0.00  fvalue_new
  2.31      7.06     0.54  3791688     0.00     0.00  check_col
  2.18      7.57     0.51    15203     0.00     0.00
proto_register_field_init
  1.62      7.95     0.38  5355865     0.00     0.00  proto_tree_add_uint
  1.49      8.30     0.35 11293368     0.00     0.00  ensure_contiguous
  1.49      8.65     0.35   512784     0.00     0.00  in_cksum
  1.45      8.99     0.34 11414388     0.00     0.00
ensure_contiguous_no_exception
  1.41      9.32     0.33  1222008     0.00     0.00  call_dissector_work
  1.37      9.64     0.32   256392     0.00     0.00  dissect_ip
  1.24      9.93     0.29  1538400     0.00     0.00  ip_to_str_buf
  1.20     10.21     0.28  1107480     0.00     0.00  col_append_fstr
  1.07     10.46     0.25  7428983     0.00     0.00  proto_tree_set_uint
  1.07     10.71     0.25  3818244     0.00     0.00  proto_tree_add_boolean
  1.02     10.95     0.24   256392     0.00     0.00  dissect_frame
  0.98     11.18     0.23 10451843     0.00     0.00  tvb_raw_offset
  0.98     11.41     0.23  7941844     0.00     0.00  fvalue_set_integer
  0.90     11.62     0.21  1342884     0.00     0.00  col_set_str
  0.90     11.83     0.21   256392     0.00     0.00  dissect_eth_common
  0.90     12.04     0.21   256368     0.00     0.00
add_packet_to_packet_list
  0.90     12.25     0.21   256368     0.00     0.00  col_init
  0.90     12.46     0.21
conversation_match_exact
  0.85     12.66     0.20  1549872     0.00     0.00  proto_tree_add_item
  0.85     12.86     0.20   121020     0.00     0.00  dissect_smb
  0.81     13.05     0.19 10391321     0.00     0.00  tvb_get_ds_tvb
  0.81     13.24     0.19  7429012     0.00     0.00  set_integer
  0.81     13.43     0.19       11     0.02     1.60  rescan_packets
  0.73     13.60     0.17  1025568     0.00     0.00  serv_name_lookup
  0.73     13.77     0.17   512736     0.00     0.00  col_set_addr
  0.68     13.93     0.16   830148     0.00     0.00  col_clear
  0.64     14.08     0.15  1124730     0.00     0.00  tvb_free
  0.64     14.23     0.15   256368     0.00     0.00  fill_in_columns
  0.56     14.36     0.13   196440     0.00     0.00  dissect_nbss
  0.56     14.49     0.13      396     0.00     0.00
proto_register_field_array
  0.51     14.61     0.12  2893842     0.00     0.00  tvb_get_ptr
  0.51     14.73     0.12  1538400     0.00     0.00  ip_to_str
  0.51     14.85     0.12  1222008     0.00     0.00
call_dissector_through_handle
  0.51     14.97     0.12   868338     0.00     0.00  add_to_used_in_list
  0.51     15.09     0.12   256392     0.00     0.00  dissect_packet
  0.51     15.21     0.12   128184     0.00     0.00  dfvm_apply
  0.47     15.32     0.11  1464048     0.00     0.00
proto_is_protocol_enabled
  0.43     15.42     0.10   565512     0.00     0.00
offset_from_real_beginning
  0.43     15.52     0.10
conversation_hash_exact
  0.38     15.61     0.09  4814589     0.00     0.00  int_fvalue_new
  0.38     15.70     0.09  2686234     0.00     0.00
proto_get_protocol_short_name
  0.38     15.79     0.09  1124730     0.00     0.00  tvb_init
  0.38     15.88     0.09   965616     0.00     0.00  dissector_try_port

| 2. Color filters:
| =================
| "clear": 19 seconds
Now: 15 seconds (20% less!)
| "frame": 19 seconds
Now: 15 seconds (20% less!)

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
  5.79      1.94     1.94                             proto_tree_free_node
  5.67      3.84     1.90 17312017     0.00     0.00  alloc_field_info
  4.21      5.25     1.41 17312017     0.00     0.00  proto_tree_add_node
  3.67      6.48     1.23 17312241     0.00     0.00  fvalue_new
  3.52      7.66     1.18 15662527     0.00     0.00  proto_tree_add_pi
  2.95      8.65     0.99  2556780     0.00     0.00  dfvm_apply
  2.54      9.50     0.85   213660     0.00     0.00  dissect_tcp
  2.36     10.29     0.79 13050790     0.00     0.00  compute_offset_length
  2.36     11.08     0.79 10866980     0.00     0.00
check_offset_length_no_exception
  2.00     11.75     0.67 12375307     0.00     0.00  proto_tree_set_uint
  1.88     12.38     0.63  7371967     0.00     0.00  proto_tree_add_uint
  1.76     12.97     0.59    15203     0.00     0.00
proto_register_field_init
  1.67     13.53     0.56 13229976     0.00     0.00  fvalue_set_integer
  1.52     14.04     0.51 17412867     0.00     0.00  tvb_raw_offset
  1.52     14.55     0.51   213660     0.00     0.00  dissect_ip
  1.52     15.06     0.51   106820     0.00     0.00
dfilter_prime_proto_tree
  1.31     15.50     0.44  4356890     0.00     0.00  proto_tree_add_boolean
  1.25     15.92     0.42  3159740     0.00     0.00  check_col
  1.25     16.34     0.42   427320     0.00     0.00  in_cksum
  1.13     16.72     0.38 17312017     0.00     0.00  tvb_get_ds_tvb
  1.10     17.09     0.37 10131330     0.00     0.00
ensure_contiguous_no_exception
  0.98     17.42     0.33  1649490     0.00     0.00  proto_tree_add_item
  0.92     17.73     0.31                             g_direct_equal
  0.84     18.01     0.28                             apply_color_filter
  0.81     18.28     0.27   427280     0.00     0.00  col_set_addr
  0.78     18.54     0.26   213660     0.00     0.00  dissect_eth_common
  0.75     18.79     0.25  1281920     0.00     0.00  serv_name_lookup
  0.75     19.04     0.25   922900     0.00     0.00  col_append_fstr
  0.72     19.28     0.24  5234180     0.00     0.00  proto_tree_prime_hfid
  0.69     19.51     0.23 10030480     0.00     0.00  ensure_contiguous
  0.69     19.74     0.23  1709280     0.00     0.00  ip_to_str_buf
  0.69     19.97     0.23   213660     0.00     0.00  dissect_frame
  0.66     20.19     0.22  1119070     0.00     0.00  col_set_str
  0.66     20.41     0.22   691790     0.00     0.00  col_clear
  0.66     20.63     0.22   213640     0.00     0.00  fill_in_columns
  0.63     20.84     0.21  4258840     0.00     0.00
proto_tree_set_representation
  0.63     21.05     0.21  3252510     0.00     0.00  fvalue_set
  0.63     21.26     0.21                             prime_edt
  0.60     21.46     0.20   213640     0.00     0.00
add_packet_to_packet_list
  0.60     21.66     0.20   100850     0.00     0.00  dissect_smb
  0.60     21.86     0.20                             g_direct_hash
  0.57     22.05     0.19 12375336     0.00     0.00  set_integer
  0.57     22.24     0.19   213640     0.00     0.00  col_init
  0.54     22.42     0.18  1018340     0.00     0.00  call_dissector_work
  0.51     22.59     0.17      396     0.00     0.00
proto_register_field_array
  0.48     22.75     0.16  8018481     0.00     0.00  int_fvalue_new
  0.48     22.91     0.16  2673920     0.00     0.00  tvb_get_ptr
  0.48     23.07     0.16  2245670     0.00     0.00  proto_item_add_subtree
  0.45     23.22     0.15  2556780     0.00     0.00  free_register_overhead
  0.45     23.37     0.15   680670     0.00     0.00  match_strval
  0.45     23.52     0.15        9     0.02     2.56  rescan_packets
  0.42     23.66     0.14  2556780     0.00     0.00
proto_get_finfo_ptr_array
  0.42     23.80     0.14  1220040     0.00     0.00
proto_is_protocol_enabled

Should someone want *all* the profile data, I can send them 
as 2 .gz files each ~110 kbyte.

Regards,

Olivier