Ethereal-dev: [Ethereal-dev] Ethereal performance results compared to official 0.9.16 release

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: Wed, 10 Dec 2003 11:17:18 +0100
Hi list,

I've been running new performance tests and have been collecting profiling
data on both the official 0.9.16 release and the CVS snapshot of 09:00 GMT
today.

Methodology: same as earlier (netbench capture, same colorfilters when
applicable). Read file, filter on "frame", reset filter etc (so the file
gets read once, filtered 5 times and reset 4 times). All tests have been run
on my P3 laptop @ 650 MHz (512 MB RAM).

Performance
===========

1. Official 0.9.16 release
--------------------------
1.1 No colorfilters
1st read / Filter on "frame" / reset filter (seconds): 22 / 21 / 20
1.2 Colorfilters
1st read / Filter on "frame" / reset filter (seconds): 23 / 25 / 23

2. Current CVS snapshot (with PCRE support)
-------------------------------------------
1.1 No colorfilters
1st read / Filter on "frame" / reset filter (seconds): 7 / 11 / 7
1.2 Colorfilters
1st read / Filter on "frame" / reset filter (seconds): 13 / 13 / 13

Conclusion:
If no color filters are applied, current Ethereal runs 2 to 3 times faster
than 0.9.16.
If my color filters are applied, current Ethereal runs about twice as fast
as 0.9.16.

Congratulations to all who helped in improving the performance of Ethereal!

Top-20 entries from gprof
=========================

1 No colorfilters
-----------------
1.1 Official 0.9.16 release
---------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
 38.78     20.74    20.74                             compare_proto_id
  3.83     22.79     2.05 17312017     0.00     0.00  alloc_field_info
  2.37     24.06     1.27 17312238     0.00     0.00  fvalue_new
  2.34     25.31     1.25 32149226     0.00     0.00
proto_registrar_get_nth
  2.24     26.51     1.20 15662527     0.00     0.00  proto_tree_add_pi
  2.17     27.67     1.16 17312017     0.00     0.00  proto_tree_add_node
  1.76     28.61     0.94                             proto_tree_free_node
  1.68     29.51     0.90   213660     0.00     0.00  dissect_tcp
  1.53     30.33     0.82  7371967     0.00     0.00  proto_tree_add_uint
  1.40     31.08     0.75 12375307     0.00     0.00  proto_tree_set_uint
  1.27     31.76     0.68 17312046     0.00     0.00  fvalue_free
  1.27     32.44     0.68 13050790     0.00     0.00  compute_offset_length
  1.22     33.09     0.65 17312017     0.00     0.00  tvb_get_ds_tvb
  1.10     33.68     0.59    14981     0.00     0.00
proto_register_field_init
  1.05     34.24     0.56 10866980     0.00     0.00
check_offset_length_no_exception
  1.03     34.79     0.55 17312017     0.00     0.00  free_node_field_info
  0.99     35.32     0.53  1709280     0.00     0.00  ip_to_str_buf
  0.95     35.83     0.51 13229976     0.00     0.00  fvalue_set_integer
  0.92     36.32     0.49  4356890     0.00     0.00  proto_tree_add_boolean
  0.86     36.78     0.46  3159740     0.00     0.00  check_col

1.2 Current CVS snapshot (with PCRE support)
--------------------------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
  4.62      0.84     0.84  8659434     0.00     0.00  alloc_field_info
  4.34      1.63     0.79 12041360     0.00     0.00  compute_offset_length
  3.63      2.29     0.66   106840     0.00     0.00
proto_tree_traverse_in_order
  3.41      2.91     0.62 10235605     0.00     0.00
check_offset_length_no_exception
  3.41      3.53     0.62  8659434     0.00     0.00  proto_tree_add_node
  3.08      4.09     0.56  7975949     0.00     0.00  proto_tree_add_pi
  3.08      4.65     0.56    15211     0.00     0.00
proto_register_field_init
  3.02      5.20     0.55  8766274     0.00     0.00  proto_tree_free_node
  2.97      5.74     0.54  4462392     0.00     0.00  proto_tree_add_uint
  2.36      6.17     0.43   213660     0.00     0.00  dissect_tcp
  2.09      6.55     0.38  8659434     0.00     0.00  fvalue_init
  1.87      6.89     0.34   427320     0.00     0.00  in_cksum
  1.65      7.19     0.30  9511990     0.00     0.00
ensure_contiguous_no_exception
  1.65      7.49     0.30  6190819     0.00     0.00  proto_tree_set_uint
  1.65      7.79     0.30   213660     0.00     0.00  dissect_ip
  1.43      8.05     0.26  9411140     0.00     0.00  ensure_contiguous
  1.37      8.30     0.25  6618208     0.00     0.00  fvalue_set_integer
  1.26      8.53     0.23  3181870     0.00     0.00  proto_tree_add_boolean
  1.15      8.74     0.21  1282000     0.00     0.00  ip_to_str_buf
  1.10      8.94     0.20   427280     0.00     0.00  col_set_addr

2 Colorfilters
--------------
2.1 Official 0.9.16 release
---------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
 36.70     21.85    21.85                             compare_proto_id
  3.26     23.79     1.94 17312017     0.00     0.00  alloc_field_info
  2.18     25.09     1.30 32149226     0.00     0.00
proto_registrar_get_nth
  2.17     26.38     1.29 15662527     0.00     0.00  proto_tree_add_pi
  2.12     27.64     1.26 17312017     0.00     0.00  proto_tree_add_node
  2.08     28.88     1.24 17312241     0.00     0.00  fvalue_new
  2.03     30.09     1.21  2556780     0.00     0.00  dfvm_apply
  1.44     30.95     0.86   213660     0.00     0.00  dissect_tcp
  1.43     31.80     0.85                             proto_tree_free_node
  1.38     32.62     0.82  7371967     0.00     0.00  proto_tree_add_uint
  1.36     33.43     0.81 17312046     0.00     0.00  fvalue_free
  1.34     34.23     0.80 13050790     0.00     0.00  compute_offset_length
  1.28     34.99     0.76 10866980     0.00     0.00
check_offset_length_no_exception
  1.21     35.71     0.72 12375307     0.00     0.00  proto_tree_set_uint
  1.11     36.37     0.66 17312017     0.00     0.00  free_node_field_info
  1.01     36.97     0.60 17312017     0.00     0.00  tvb_get_ds_tvb
  0.99     37.56     0.59    14981     0.00     0.00
proto_register_field_init
  0.97     38.14     0.58   427320     0.00     0.00  in_cksum
  0.87     38.66     0.52   213660     0.00     0.00  dissect_ip
  0.82     39.15     0.49 13229976     0.00     0.00  fvalue_set_integer

2.2 Current CVS snapshot (with PCRE support)
--------------------------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
  4.97      1.51     1.51 17312017     0.00     0.00  alloc_field_info
  4.08      2.75     1.24 17312017     0.00     0.00  proto_tree_add_node
  4.04      3.98     1.23  2556780     0.00     0.00  dfvm_apply
  3.78      5.13     1.15 15662527     0.00     0.00  proto_tree_add_pi
  3.68      6.25     1.12 17525677     0.00     0.00  proto_tree_free_node
  3.58      7.34     1.09   213660     0.00     0.00
proto_tree_traverse_in_order
  3.52      8.41     1.07  7371967     0.00     0.00  proto_tree_add_uint
  3.32      9.42     1.01 17312017     0.00     0.00  fvalue_init
  2.40     10.15     0.73 13050790     0.00     0.00  compute_offset_length
  2.40     10.88     0.73 12375307     0.00     0.00  proto_tree_set_uint
  2.30     11.58     0.70   213660     0.00     0.00  dissect_tcp
  2.01     12.19     0.61 10866980     0.00     0.00
check_offset_length_no_exception
  1.78     12.73     0.54    15211     0.00     0.00
proto_register_field_init
  1.51     13.19     0.46 13229976     0.00     0.00  fvalue_set_integer
  1.48     13.64     0.45  4356890     0.00     0.00  proto_tree_add_boolean
  1.45     14.08     0.44   106820     0.00     0.00
dfilter_prime_proto_tree
  1.28     14.47     0.39   213660     0.00     0.00  dissect_ip
  1.25     14.85     0.38   427320     0.00     0.00  in_cksum
  1.18     15.21     0.36 10131330     0.00     0.00
ensure_contiguous_no_exception
  1.02     15.52     0.31  1709280     0.00     0.00  ip_to_str_buf

Regards,

Olivier