I spent a few minutes considering the overhead of message parsing, HTML rendering, etc. (Basically, I was wondering if the work I'm doing today to speed up HTML rendering is really worth it.)
Observations: 1. On a sample of ham and spam (2/3 spam and 1/3 ham), running with only one very low-cost rule, the trunk required 22% of the time needed to run with all rules enabled. I think it could be a lot faster, but the overhead of parsing and rendering is not the #1 bottleneck ... yet. 2. I think observation #1 suggests that we need to start looking into early exit on high score, etc. Granted, this only helps with spam, but spam is 2/3 of email for most people. 3. Also, it seems that mass-check will parse messages marked as spam *twice*. And guess what, the 200 spam were marked as spam so the parse code was 501 times total (200*2 for spam + 100 for ham + 1 for startup = 501). It does add up a bit in a mass-check and we're going to have to rip this out anyway if we're going to use real-time numbers for any network tests. The artifact did make it a bit easier to break out the profile by functional group, although I could have done that via a comment in mass-check too. :-) Data: I broke down a profile of a smaller sample (200 spam and 100 ham, same ratio) by functional group whole thing: Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.18 0.284 149.37 1 0.2835 149.37 Mail::SpamAssassin::ArchiveIterator::run 0.09 0.150 149.04 300 0.0005 0.4968 Mail::SpamAssassin::ArchiveIterator::run_message 0.27 0.433 148.88 300 0.0014 0.4963 Mail::SpamAssassin::ArchiveIterator::run_file 0.56 0.892 148.03 300 0.0030 0.4934 main::wanted 0.00 0.000 0.849 1 0.0000 0.8495 Mail::SpamAssassin::compile_now Now, I may have missed categorized some checking vs. parsing stuff and some functions are called from either. parsing: %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.28 0.444 27.354 501 0.0009 0.0546 Mail::SpamAssassin::Message::Node::rendered 0.09 0.144 25.726 177 0.0008 0.1453 Mail::SpamAssassin::HTML::parse 4.82 7.637 24.734 177 0.0431 0.1397 HTML::Parser::parse 0.07 0.116 12.243 501 0.0002 0.0244 Mail::SpamAssassin::parse 3.54 5.610 12.197 18148 0.0003 0.0007 Mail::SpamAssassin::HTML::html_tag 2.31 3.656 12.128 501 0.0073 0.0242 Mail::SpamAssassin::Message::new 2.65 4.202 4.925 9216 0.0005 0.0005 Mail::SpamAssassin::HTML::html_text 0.55 0.879 4.743 501 0.0018 0.0095 Mail::SpamAssassin::Message::_do_parse 0.32 0.505 4.521 858 0.0006 0.0053 Mail::SpamAssassin::Message::parse_body 0.47 0.741 3.538 2400 0.0003 0.0015 Mail::SpamAssassin::HTML::html_uri 0.46 0.725 2.800 2399 0.0003 0.0012 Mail::SpamAssassin::HTML::push_uri 0.53 0.844 2.483 253 0.0033 0.0098 Mail::SpamAssassin::Message::_parse_multipart 1.08 1.709 2.077 2399 0.0007 0.0009 Mail::SpamAssassin::HTML::target_uri 0.50 0.785 1.497 605 0.0013 0.0025 Mail::SpamAssassin::Message::_parse_normal 0.73 1.158 1.283 4517 0.0003 0.0003 Mail::SpamAssassin::HTML::text_style 0.62 0.985 1.144 3658 0.0003 0.0003 Mail::SpamAssassin::HTML::html_whitespace 0.09 0.135 0.848 177 0.0008 0.0048 HTML::Parser::eof checking: %Time ExclSec CumulS #Calls sec/call Csec/c Name 2.70 4.272 133.44 301 0.0142 0.4433 Mail::SpamAssassin::PerMsgStatus::check 0.14 0.217 133.25 300 0.0007 0.4442 Mail::SpamAssassin::check 8.80 13.93 43.424 1505 0.0093 0.0289 Mail::SpamAssassin::PerMsgStatus::run_eval_tests 10.8 17.13 32.478 903 0.0190 0.0360 Mail::SpamAssassin::PerMsgStatus::do_head_tests 0.12 0.197 28.412 602 0.0003 0.0472 Mail::SpamAssassin::PerMsgStatus::get_decoded_stripped_body_text_array 0.23 0.364 28.216 602 0.0006 0.0469 Mail::SpamAssassin::Message::get_rendered_body_text_array 0.07 0.113 27.284 903 0.0001 0.0302 Mail::SpamAssassin::PerMsgStatus::do_head_eval_tests 4.49 7.105 22.818 76646 0.0001 0.0003 Mail::SpamAssassin::PerMsgStatus::get 3.27 5.181 15.760 17986 0.0003 0.0009 Mail::SpamAssassin::PerMsgStatus::_get 0.07 0.114 15.343 903 0.0001 0.0170 Mail::SpamAssassin::PerMsgStatus::do_body_eval_tests 6.44 10.20 11.198 903 0.0113 0.0124 Mail::SpamAssassin::PerMsgStatus::do_body_tests 5.01 7.931 8.933 27186 0.0003 0.0003 Mail::SpamAssassin::Message::Node::get_header 0.14 0.226 5.046 301 0.0008 0.0168 Mail::SpamAssassin::PerMsgStatus::check_to_in_more_spam 1.45 2.301 4.810 7119 0.0003 0.0007 Mail::SpamAssassin::PerMsgStatus::got_hit 0.79 1.259 4.801 1204 0.0010 0.0040 Mail::SpamAssassin::PerMsgStatus::all_to_addrs 2.74 4.348 4.779 35528 0.0001 0.0001 Mail::SpamAssassin::Message::Node::header 0.15 0.241 4.581 301 0.0008 0.0152 Mail::SpamAssassin::PerMsgStatus::extract_message_metadata 0.09 0.142 4.169 301 0.0005 0.0139 Mail::SpamAssassin::Message::extract_message_metadata 0.14 0.226 4.027 301 0.0008 0.0134 Mail::SpamAssassin::Message::Metadata::extract 0.07 0.104 3.858 301 0.0003 0.0128 Mail::SpamAssassin::PerMsgStatus::check_from_in_whitelist 0.20 0.314 3.754 301 0.0010 0.0125 Mail::SpamAssassin::PerMsgStatus::_check_from_in_whitelist 1.18 1.869 3.697 301 0.0062 0.0123 Mail::SpamAssassin::Message::Metadata::parse_received_headers 0.47 0.740 3.449 903 0.0008 0.0038 Mail::SpamAssassin::PerMsgStatus::all_from_addrs 0.86 1.370 3.173 301 0.0046 0.0105 Mail::SpamAssassin::Message::Node::get_all_headers 1.78 2.827 3.095 10659 0.0003 0.0003 Mail::SpamAssassin::PerMsgStatus::dbg 0.50 0.799 3.089 301 0.0027 0.0103 Mail::SpamAssassin::PerMsgStatus::get_uri_list 0.13 0.203 2.614 3311 0.0001 0.0008 Mail::SpamAssassin::PerMsgStatus::check_for_shifted_date 1.34 2.129 2.516 7119 0.0003 0.0004 Mail::SpamAssassin::PerMsgStatus::handle_hit 0.13 0.208 2.413 301 0.0007 0.0080 Mail::SpamAssassin::PerMsgStatus::_check_date_diff 0.07 0.112 2.350 903 0.0001 0.0026 Mail::SpamAssassin::PerMsgStatus::check_for_uppercase 0.14 0.227 2.238 301 0.0008 0.0074 Mail::SpamAssassin::PerMsgStatus::body_charset_is_likely_to_fp 0.59 0.929 2.012 301 0.0031 0.0067 Mail::SpamAssassin::PerMsgStatus::_check_attachments 0.54 0.860 1.625 1699 0.0005 0.0010 Mail::SpamAssassin::Util::uri_to_domain 0.20 0.321 1.592 1302 0.0002 0.0012 Mail::SpamAssassin::Message::find_parts 0.45 0.709 1.527 300 0.0024 0.0051 Mail::SpamAssassin::PerMsgStatus::_get_received_header_times 0.29 0.467 1.506 287 0.0016 0.0052 Mail::SpamAssassin::PerMsgStatus::get_envelope_from 0.21 0.331 1.291 1312 0.0003 0.0010 Mail::SpamAssassin::Message::Node::find_parts 0.39 0.614 1.269 602 0.0010 0.0021 Mail::SpamAssassin::PerMsgStatus::do_meta_tests 0.05 0.078 1.264 301 0.0003 0.0042 Mail::SpamAssassin::PerMsgStatus::check_for_forged_hotmail_received_headers 0.25 0.402 1.214 602 0.0007 0.0020 Mail::SpamAssassin::PerMsgStatus::_check_for_forged_hotmail_received_headers 0.56 0.890 1.193 2254 0.0004 0.0005 Mail::SpamAssassin::Message::Node::_find_parts 0.24 0.379 1.141 1204 0.0003 0.0009 Mail::SpamAssassin::PerMsgStatus::get_decoded_body_text_array 0.05 0.085 1.125 301 0.0003 0.0037 Mail::SpamAssassin::PerMsgStatus::check_for_forged_received_trail 0.37 0.589 1.109 1806 0.0003 0.0006 Mail::SpamAssassin::PerMsgStatus::check_for_rdns_helo_mismatch 0.21 0.333 1.082 301 0.0011 0.0036 Mail::SpamAssassin::PerMsgStatus::check_messageid_not_usable 0.55 0.877 1.062 3346 0.0003 0.0003 Mail::SpamAssassin::call_plugins 0.46 0.721 1.040 301 0.0024 0.0035 Mail::SpamAssassin::PerMsgStatus::_check_for_forged_received 0.08 0.123 1.033 301 0.0004 0.0034 Mail::SpamAssassin::PerMsgStatus::multipart_alternative_difference 0.05 0.086 0.998 903 0.0001 0.0011 Mail::SpamAssassin::PerMsgStatus::do_rawbody_eval_tests 0.56 0.885 0.948 2718 0.0003 0.0003 Mail::SpamAssassin::Message::dbg 0.42 0.663 0.912 818 0.0008 0.0011 Mail::SpamAssassin::Message::Metadata::parse_received_line 0.13 0.208 0.910 301 0.0007 0.0030 Mail::SpamAssassin::PerMsgStatus::_multipart_alternative_difference 0.18 0.289 0.862 903 0.0003 0.0010 Mail::SpamAssassin::PerMsgStatus::check_illegal_chars original profile: ------- start of cut text -------------- Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 10.8 17.13 32.478 903 0.0190 0.0360 Mail::SpamAssassin::PerMsgStatus::do_head_tests 8.80 13.93 43.424 1505 0.0093 0.0289 Mail::SpamAssassin::PerMsgStatus::run_eval_tests 6.44 10.20 11.198 903 0.0113 0.0124 Mail::SpamAssassin::PerMsgStatus::do_body_tests 5.01 7.931 8.933 27186 0.0003 0.0003 Mail::SpamAssassin::Message::Node::get_header 4.82 7.637 24.734 177 0.0431 0.1397 HTML::Parser::parse 4.49 7.105 22.818 76646 0.0001 0.0003 Mail::SpamAssassin::PerMsgStatus::get 3.54 5.610 12.197 18148 0.0003 0.0007 Mail::SpamAssassin::HTML::html_tag 3.27 5.181 15.760 17986 0.0003 0.0009 Mail::SpamAssassin::PerMsgStatus::_get 2.74 4.348 4.779 35528 0.0001 0.0001 Mail::SpamAssassin::Message::Node::header 2.70 4.272 133.44 301 0.0142 0.4433 Mail::SpamAssassin::PerMsgStatus::check 2.65 4.202 4.925 9216 0.0005 0.0005 Mail::SpamAssassin::HTML::html_text 2.31 3.656 12.128 501 0.0073 0.0242 Mail::SpamAssassin::Message::new 1.78 2.827 3.095 10659 0.0003 0.0003 Mail::SpamAssassin::PerMsgStatus::dbg 1.45 2.301 4.810 7119 0.0003 0.0007 Mail::SpamAssassin::PerMsgStatus::got_hit 1.34 2.129 2.516 7119 0.0003 0.0004 Mail::SpamAssassin::PerMsgStatus::handle_hit 1.18 1.869 3.697 301 0.0062 0.0123 Mail::SpamAssassin::Message::Metadata::parse_received_headers 1.08 1.709 2.077 2399 0.0007 0.0009 Mail::SpamAssassin::HTML::target_uri 0.86 1.370 3.173 301 0.0046 0.0105 Mail::SpamAssassin::Message::Node::get_all_headers 0.79 1.259 4.801 1204 0.0010 0.0040 Mail::SpamAssassin::PerMsgStatus::all_to_addrs 0.73 1.158 1.283 4517 0.0003 0.0003 Mail::SpamAssassin::HTML::text_style 0.62 0.985 1.144 3658 0.0003 0.0003 Mail::SpamAssassin::HTML::html_whitespace 0.59 0.929 2.012 301 0.0031 0.0067 Mail::SpamAssassin::PerMsgStatus::_check_attachments 0.56 0.892 148.03 300 0.0030 0.4934 main::wanted 0.56 0.890 1.193 2254 0.0004 0.0005 Mail::SpamAssassin::Message::Node::_find_parts 0.56 0.885 0.948 2718 0.0003 0.0003 Mail::SpamAssassin::Message::dbg 0.55 0.879 4.743 501 0.0018 0.0095 Mail::SpamAssassin::Message::_do_parse 0.55 0.877 1.062 3346 0.0003 0.0003 Mail::SpamAssassin::call_plugins 0.54 0.860 1.625 1699 0.0005 0.0010 Mail::SpamAssassin::Util::uri_to_domain 0.53 0.844 2.483 253 0.0033 0.0098 Mail::SpamAssassin::Message::_parse_multipart 0.50 0.799 3.089 301 0.0027 0.0103 Mail::SpamAssassin::PerMsgStatus::get_uri_list 0.50 0.785 1.497 605 0.0013 0.0025 Mail::SpamAssassin::Message::_parse_normal 0.47 0.741 3.538 2400 0.0003 0.0015 Mail::SpamAssassin::HTML::html_uri 0.47 0.740 3.449 903 0.0008 0.0038 Mail::SpamAssassin::PerMsgStatus::all_from_addrs 0.46 0.725 2.800 2399 0.0003 0.0012 Mail::SpamAssassin::HTML::push_uri 0.46 0.721 1.040 301 0.0024 0.0035 Mail::SpamAssassin::PerMsgStatus::_check_for_forged_received 0.45 0.709 1.527 300 0.0024 0.0051 Mail::SpamAssassin::PerMsgStatus::_get_received_header_times 0.42 0.663 0.912 818 0.0008 0.0011 Mail::SpamAssassin::Message::Metadata::parse_received_line 0.41 0.652 0.659 177 0.0037 0.0037 Mail::SpamAssassin::HTML::html_end 0.40 0.626 0.620 12865 0.0000 0.0000 Mail::SpamAssassin::HTML::display_text 0.39 0.614 1.269 602 0.0010 0.0021 Mail::SpamAssassin::PerMsgStatus::do_meta_tests 0.37 0.592 0.645 2241 0.0003 0.0003 Mail::SpamAssassin::Message::Metadata::dbg 0.37 0.589 1.109 1806 0.0003 0.0006 Mail::SpamAssassin::PerMsgStatus::check_for_rdns_helo_mismatch 0.37 0.588 0.582 12642 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_range 0.37 0.580 0.640 7678 0.0001 0.0001 Mail::SpamAssassin::HTML::html_tests 0.35 0.561 0.842 594 0.0009 0.0014 Mail::SpamAssassin::PerMsgStatus::gated_through_received_hdr_remover 0.33 0.530 0.622 1439 0.0004 0.0004 Mail::SpamAssassin::Util::parse_rfc822_date 0.33 0.523 0.837 903 0.0006 0.0009 Mail::SpamAssassin::PerMsgStatus::do_rawbody_tests 0.32 0.505 4.521 858 0.0006 0.0053 Mail::SpamAssassin::Message::parse_body 0.31 0.497 0.522 1806 0.0003 0.0003 Mail::SpamAssassin::PerMsgStatus::sent_by_applemail 0.30 0.483 0.475 16882 0.0000 0.0000 Mail::SpamAssassin::dbg 0.30 0.471 0.553 301 0.0016 0.0018 Mail::SpamAssassin::Util::uri_list_canonify 0.29 0.467 1.506 287 0.0016 0.0052 Mail::SpamAssassin::PerMsgStatus::get_envelope_from 0.29 0.462 0.730 1684 0.0003 0.0004 Mail::SpamAssassin::Util::RegistrarBoundaries::trim_domain 0.29 0.459 0.763 1204 0.0004 0.0006 Mail::SpamAssassin::Message::get_decoded_body_text_array 0.28 0.450 0.454 11351 0.0000 0.0000 Mail::SpamAssassin::Message::Node::_decode_header 0.28 0.444 27.354 501 0.0009 0.0546 Mail::SpamAssassin::Message::Node::rendered Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.27 0.433 148.88 300 0.0014 0.4963 Mail::SpamAssassin::ArchiveIterator::run_file 0.26 0.419 0.419 932 0.0004 0.0004 Mail::SpamAssassin::PerMsgStatus::_check_whitelist_rcvd 0.26 0.410 0.484 177 0.0023 0.0027 HTML::Parser::init 0.25 0.402 1.214 602 0.0007 0.0020 Mail::SpamAssassin::PerMsgStatus::_check_for_forged_hotmail_received_headers 0.25 0.398 0.394 7119 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::_handle_hit 0.24 0.379 1.141 1204 0.0003 0.0009 Mail::SpamAssassin::PerMsgStatus::get_decoded_body_text_array 0.23 0.372 0.766 501 0.0007 0.0015 Mail::SpamAssassin::Message::finish 0.23 0.364 28.216 602 0.0006 0.0469 Mail::SpamAssassin::Message::get_rendered_body_text_array 0.23 0.361 0.753 903 0.0004 0.0008 Mail::SpamAssassin::PerMsgStatus::do_body_uri_tests 0.21 0.340 0.471 200 0.0017 0.0024 Mail::SpamAssassin::remove_spamassassin_markup 0.21 0.337 0.335 4798 0.0001 0.0001 Mail::SpamAssassin::HTML::_parse_uri 0.21 0.333 1.082 301 0.0011 0.0036 Mail::SpamAssassin::PerMsgStatus::check_messageid_not_usable 0.21 0.331 1.291 1312 0.0003 0.0010 Mail::SpamAssassin::Message::Node::find_parts 0.21 0.327 0.535 702 0.0005 0.0008 Mail::SpamAssassin::Message::Node::decode 0.20 0.321 1.592 1302 0.0002 0.0012 Mail::SpamAssassin::Message::find_parts 0.20 0.314 3.754 301 0.0010 0.0125 Mail::SpamAssassin::PerMsgStatus::_check_from_in_whitelist 0.20 0.311 0.593 903 0.0003 0.0007 Mail::SpamAssassin::PerMsgStatus::do_full_tests 0.20 0.309 0.363 301 0.0010 0.0012 Mail::SpamAssassin::PerMsgStatus::check_to_in_blacklist 0.19 0.296 0.352 971 0.0003 0.0004 Mail::SpamAssassin::Message::Node::dbg 0.19 0.295 0.295 301 0.0010 0.0010 Mail::SpamAssassin::PerMsgStatus::_check_unique_words 0.18 0.289 0.862 903 0.0003 0.0010 Mail::SpamAssassin::PerMsgStatus::check_illegal_chars 0.18 0.286 0.694 301 0.0009 0.0023 Mail::SpamAssassin::PerMsgStatus::_check_from_in_default_whitelist 0.18 0.285 0.593 903 0.0003 0.0007 Mail::SpamAssassin::PerMsgStatus::check_blank_line_ratio 0.18 0.284 149.37 1 0.2835 149.37 Mail::SpamAssassin::ArchiveIterator::run 0.17 0.271 0.270 1684 0.0002 0.0002 Mail::SpamAssassin::Util::RegistrarBoundaries::split_domain 0.17 0.262 0.259 6286 0.0000 0.0000 Mail::SpamAssassin::Message::Node::raw_header 0.16 0.260 0.268 4485 0.0001 0.0001 Mail::SpamAssassin::HTML::html_font_invisible 0.16 0.260 0.408 602 0.0004 0.0007 Mail::SpamAssassin::PerMsgStatus::finish 0.16 0.255 0.293 858 0.0003 0.0003 Mail::SpamAssassin::Message::Node::finish 0.15 0.241 4.581 301 0.0008 0.0152 Mail::SpamAssassin::PerMsgStatus::extract_message_metadata 0.14 0.227 2.238 301 0.0008 0.0074 Mail::SpamAssassin::PerMsgStatus::body_charset_is_likely_to_fp 0.14 0.226 4.027 301 0.0008 0.0134 Mail::SpamAssassin::Message::Metadata::extract 0.14 0.226 0.679 301 0.0008 0.0023 Mail::SpamAssassin::PerMsgStatus::_get_date_header_time 0.14 0.226 5.046 301 0.0008 0.0168 Mail::SpamAssassin::PerMsgStatus::check_to_in_more_spam 0.14 0.217 133.25 300 0.0007 0.4442 Mail::SpamAssassin::check 0.13 0.208 0.812 855 0.0002 0.0009 Mail::SpamAssassin::PerMsgStatus::got_pattern_hit 0.13 0.208 2.413 301 0.0007 0.0080 Mail::SpamAssassin::PerMsgStatus::_check_date_diff 0.13 0.208 0.910 301 0.0007 0.0030 Mail::SpamAssassin::PerMsgStatus::_multipart_alternative_difference 0.13 0.203 2.614 3311 0.0001 0.0008 Mail::SpamAssassin::PerMsgStatus::check_for_shifted_date 0.13 0.203 0.212 301 0.0007 0.0007 Mail::SpamAssassin::PerMsgStatus::check_to_in_all_spam 0.12 0.198 0.282 301 0.0007 0.0009 Mail::SpamAssassin::PerMsgStatus::check_from_in_blacklist 0.12 0.197 28.412 602 0.0003 0.0472 Mail::SpamAssassin::PerMsgStatus::get_decoded_stripped_body_text_array 0.12 0.192 0.200 301 0.0006 0.0007 Mail::SpamAssassin::PerMsgStatus::check_to_in_whitelist 0.11 0.179 0.716 301 0.0006 0.0024 Mail::SpamAssassin::PerMsgStatus::_check_recipients 0.11 0.179 0.234 301 0.0006 0.0008 Mail::SpamAssassin::PerMsgStatus::check_for_faraway_charset 0.11 0.178 0.376 620 0.0003 0.0006 Mail::SpamAssassin::Message::Node::add_body_part 0.11 0.172 0.188 3346 0.0001 0.0001 Mail::SpamAssassin::PluginHandler::callback 0.11 0.167 0.345 2 0.0836 0.1723 Mail::SpamAssassin::Conf::Parser::parse 0.10 0.160 0.159 2824 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::_check_whitelist 0.10 0.154 0.153 2739 0.0001 0.0001 Mail::SpamAssassin::Util::parse_content_type 0.10 0.152 0.152 301 0.0005 0.0005 Mail::SpamAssassin::PerMsgStatus::check_for_forged_juno_received_headers 0.09 0.150 0.383 301 0.0005 0.0013 Mail::SpamAssassin::PerMsgStatus::check_for_to_in_subject 0.09 0.150 149.04 300 0.0005 0.4968 Mail::SpamAssassin::ArchiveIterator::run_message 0.09 0.144 25.726 177 0.0008 0.1453 Mail::SpamAssassin::HTML::parse 0.09 0.143 0.408 300 0.0005 0.0014 Mail::SpamAssassin::Util::receive_date 0.09 0.142 0.252 903 0.0002 0.0003 Mail::SpamAssassin::PerMsgStatus::do_full_eval_tests Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.09 0.142 4.169 301 0.0005 0.0139 Mail::SpamAssassin::Message::extract_message_metadata 0.09 0.141 0.140 501 0.0003 0.0003 Mail::SpamAssassin::Message::finish_metadata 0.09 0.135 0.848 177 0.0008 0.0048 HTML::Parser::eof 0.08 0.133 0.265 300 0.0004 0.0009 Mail::SpamAssassin::Util::first_date 0.08 0.133 0.151 301 0.0004 0.0005 Mail::SpamAssassin::PerMsgStatus::subject_is_all_caps 0.08 0.123 0.244 301 0.0004 0.0008 Mail::SpamAssassin::PerMsgStatus::check_for_round_the_world_received_helo 0.08 0.123 1.033 301 0.0004 0.0034 Mail::SpamAssassin::PerMsgStatus::multipart_alternative_difference 0.08 0.123 0.141 301 0.0004 0.0005 Mail::SpamAssassin::PerMsgStatus::check_for_no_rdns_dotcom_helo 0.08 0.122 0.122 301 0.0004 0.0004 Mail::SpamAssassin::PerMsgStatus::_check_for_round_the_world_received 0.08 0.121 0.120 2107 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_for_mime 0.08 0.121 0.149 301 0.0004 0.0005 Mail::SpamAssassin::PerMsgStatus::check_for_no_hotmail_received_headers 0.08 0.121 0.815 301 0.0004 0.0027 Mail::SpamAssassin::PerMsgStatus::check_from_in_default_whitelist 0.07 0.116 12.243 501 0.0002 0.0244 Mail::SpamAssassin::parse 0.07 0.114 15.343 903 0.0001 0.0170 Mail::SpamAssassin::PerMsgStatus::do_body_eval_tests 0.07 0.113 27.284 903 0.0001 0.0302 Mail::SpamAssassin::PerMsgStatus::do_head_eval_tests 0.07 0.112 0.112 903 0.0001 0.0001 Mail::SpamAssassin::Message::Node::delete_header 0.07 0.112 2.350 903 0.0001 0.0026 Mail::SpamAssassin::PerMsgStatus::check_for_uppercase 0.07 0.105 0.821 301 0.0003 0.0027 Mail::SpamAssassin::PerMsgStatus::similar_recipients 0.07 0.104 3.858 301 0.0003 0.0128 Mail::SpamAssassin::PerMsgStatus::check_from_in_whitelist 0.07 0.103 0.195 283 0.0004 0.0007 Mail::SpamAssassin::PerMsgStatus::received_within_months 0.07 0.103 0.121 301 0.0003 0.0004 Mail::SpamAssassin::PerMsgStatus::check_outlook_message_id 0.06 0.101 0.138 301 0.0003 0.0005 Mail::SpamAssassin::PerMsgStatus::check_for_unique_subject_id 0.06 0.094 0.093 1438 0.0001 0.0001 Time::Local::timegm 0.06 0.092 0.092 667 0.0001 0.0001 Mail::SpamAssassin::Util::extract_ipv4_addr_from_string 0.06 0.089 0.107 499 0.0002 0.0002 Mail::SpamAssassin::PerMsgStatus::_check_mime_header 0.05 0.086 0.998 903 0.0001 0.0011 Mail::SpamAssassin::PerMsgStatus::do_rawbody_eval_tests 0.05 0.086 0.410 301 0.0003 0.0014 Mail::SpamAssassin::PerMsgStatus::message_is_habeas_swe 0.05 0.085 0.084 2753 0.0000 0.0000 Mail::SpamAssassin::Message::Node::is_leaf 0.05 0.085 1.125 301 0.0003 0.0037 Mail::SpamAssassin::PerMsgStatus::check_for_forged_received_trail 0.05 0.084 0.083 2096 0.0000 0.0000 Mail::SpamAssassin::HTML::close_tag 0.05 0.084 0.083 1583 0.0001 0.0001 Mail::SpamAssassin::Util::url_encode 0.05 0.083 0.567 177 0.0005 0.0032 HTML::Parser::new 0.05 0.078 1.264 301 0.0003 0.0042 Mail::SpamAssassin::PerMsgStatus::check_for_forged_hotmail_received_headers 0.05 0.076 0.114 301 0.0003 0.0004 Mail::SpamAssassin::PerMsgStatus::run_rbl_eval_tests 0.05 0.076 0.076 301 0.0003 0.0003 Mail::SpamAssassin::PerMsgStatus::check_for_mime_html 0.04 0.068 0.067 2001 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::hostname_to_domain 0.04 0.066 0.065 1806 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_image_only 0.04 0.066 0.066 301 0.0002 0.0002 Mail::SpamAssassin::PerMsgStatus::message_id_from_mta 0.04 0.065 0.064 2107 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_test 0.04 0.065 0.065 301 0.0002 0.0002 Mail::SpamAssassin::PerMsgStatus::check_language 0.04 0.064 0.064 306 0.0002 0.0002 Mail::SpamAssassin::HTML::examine_text_style 0.04 0.059 0.098 861 0.0001 0.0001 Mail::SpamAssassin::Conf::Parser::add_test 0.04 0.058 0.057 1239 0.0000 0.0000 HTML::Parser::handler 0.04 0.057 0.056 1505 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_text_match 0.04 0.057 0.066 301 0.0002 0.0002 Mail::SpamAssassin::PerMsgStatus::check_for_mime_html_only 0.04 0.056 0.093 301 0.0002 0.0003 Mail::SpamAssassin::PerMsgStatus::check_for_forged_yahoo_received_headers 0.03 0.055 0.065 301 0.0002 0.0002 Mail::SpamAssassin::PerMsgStatus::check_for_faraway_charset_in_headers 0.03 0.048 0.048 531 0.0001 0.0001 Mail::SpamAssassin::HTML::get_rendered_text 0.03 0.047 0.047 602 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::new 0.03 0.047 0.046 2107 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_tag_exists 0.03 0.047 0.342 301 0.0002 0.0011 Mail::SpamAssassin::PerMsgStatus::check_unique_words 0.03 0.046 0.203 301 0.0002 0.0007 Mail::SpamAssassin::PerMsgStatus::check_header_count_range 0.03 0.046 0.092 283 0.0002 0.0003 Mail::SpamAssassin::PerMsgStatus::_check_date_received 0.03 0.046 0.613 177 0.0003 0.0035 Mail::SpamAssassin::HTML::new 0.03 0.045 0.044 1806 0.0000 0.0000 Mail::SpamAssassin::Conf::get_score_set 0.03 0.045 0.045 277 0.0002 0.0002 Mail::SpamAssassin::Message::Node::content_summary Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.03 0.040 0.040 731 0.0001 0.0001 Mail::SpamAssassin::Conf::Parser::set_hash_key_value 0.03 0.040 0.040 531 0.0001 0.0001 Mail::SpamAssassin::Conf::Parser::is_regexp_valid 0.02 0.038 0.037 1684 0.0000 0.0000 Mail::SpamAssassin::Util::RegistrarBoundaries::is_domain_valid 0.02 0.038 0.038 601 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::get_names_of_tests_hit 0.02 0.038 0.037 1091 0.0000 0.0000 Mail::SpamAssassin::HTML::_remove_dot_segments 0.02 0.038 0.038 501 0.0001 0.0001 Mail::SpamAssassin::Message::Metadata::new 0.02 0.038 0.038 903 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_image_ratio 0.02 0.038 0.038 989 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::is_dns_available 0.02 0.038 0.038 855 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::get_my_locales 0.02 0.037 0.037 602 0.0001 0.0001 Mail::SpamAssassin::Message::put_metadata 0.02 0.030 0.029 1806 0.0000 0.0000 Mail::SpamAssassin::NetSet::get_num_nets 0.02 0.030 0.030 177 0.0002 0.0002 Mail::SpamAssassin::HTML::html_start 0.02 0.029 0.029 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_from_in_auto_whitelist 0.02 0.029 0.029 601 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::get_names_of_subtests_hit 0.02 0.029 0.029 652 0.0000 0.0000 Mail::SpamAssassin::Message::split_into_array_of_short_lines 0.02 0.028 0.026 3103 0.0000 0.0000 Mail::SpamAssassin::HTML::put_results 0.02 0.028 0.028 602 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_tag_balance 0.02 0.028 0.028 301 0.0001 0.0001 Mail::SpamAssassin::Message::Metadata::check_language 0.02 0.028 0.028 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_for_forged_eudoramail_received_headers 0.02 0.027 0.027 995 0.0000 0.0000 Mail::SpamAssassin::HTML::close_table_tag 0.02 0.027 0.027 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_mime_multipart_ratio 0.02 0.027 0.027 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::helo_ip_mismatch 0.02 0.027 0.027 301 0.0001 0.0001 Mail::SpamAssassin::ArchiveIterator::next_message 0.01 0.020 0.020 1 0.0200 0.0200 Mail::SpamAssassin::Conf::Parser::finish_parsing 0.01 0.020 0.020 301 0.0001 0.0001 Mail::SpamAssassin::Message::get_metadata 0.01 0.020 0.020 623 0.0000 0.0000 Mail::SpamAssassin::HTML::_name_to_rgb 0.01 0.020 0.020 1 0.0200 0.0200 Mail::SpamAssassin::Bayes::new 0.01 0.020 0.020 903 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::html_eval 0.01 0.020 0.020 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::html_charset_faraway 0.01 0.020 0.020 601 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::is_spam 0.01 0.020 0.020 300 0.0001 0.0001 main::result 0.01 0.020 0.020 6 0.0033 0.0033 Mail::SpamAssassin::PerMsgStatus::word_is_in_dictionary 0.01 0.019 0.019 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_for_illegal_ip 0.01 0.019 0.019 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_for_body_8bits 0.01 0.019 0.019 34 0.0006 0.0006 Mail::SpamAssassin::Util::base64_decode 0.01 0.019 0.019 4 0.0047 0.0047 Mail::SpamAssassin::read_cf 0.01 0.018 0.018 300 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::get_score 0.01 0.018 0.018 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::sorted_recipients 0.01 0.018 0.018 862 0.0000 0.0000 Mail::SpamAssassin::Message::Node::new 0.01 0.018 0.018 302 0.0001 0.0001 Mail::SpamAssassin::Bayes::is_scan_available 0.01 0.018 0.018 315 0.0001 0.0001 Mail::SpamAssassin::find_all_addrs_in_line 0.01 0.018 0.018 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_all_trusted 0.01 0.018 0.018 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::check_for_long_header 0.01 0.018 0.018 301 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::_check_received_helos 0.01 0.018 0.018 177 0.0001 0.0001 HTML::Parser::marked_sections 0.01 0.010 0.010 363 0.0000 0.0000 Mail::SpamAssassin::Message::Node::raw 0.01 0.010 0.010 301 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::check_domain_ratio 0.01 0.010 0.010 177 0.0001 0.0001 Mail::SpamAssassin::HTML::get_results 0.01 0.010 0.010 300 0.0000 0.0000 Mail::SpamAssassin::ArchiveIterator::mail_open 0.01 0.010 0.010 132 0.0001 0.0001 Mail::SpamAssassin::PerMsgStatus::helo_forgery_whitelisted 0.01 0.010 0.010 200 0.0000 0.0000 Mail::SpamAssassin::Message::get_mbox_separator 0.01 0.010 0.010 300 0.0000 0.0000 Mail::SpamAssassin::ArchiveIterator::index_unpack 0.01 0.010 0.010 1 0.0100 0.0100 Mail::SpamAssassin::create_locker 0.01 0.010 0.010 10 0.0010 0.0010 Mail::SpamAssassin::Conf::Parser::handle_conditional 0.01 0.010 0.020 4 0.0025 0.0050 Mail::SpamAssassin::PluginHandler::load_plugin 0.01 0.009 0.009 173 0.0001 0.0001 Mail::SpamAssassin::Message::Node::_html_render Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.01 0.009 0.009 301 0.0000 0.0000 Mail::SpamAssassin::PerMsgStatus::check_for_numeric_helo 0.01 0.009 0.009 80 0.0001 0.0001 Mail::SpamAssassin::Util::qp_decode 0.01 0.009 0.009 207 0.0000 0.0000 Mail::SpamAssassin::Message::get_pristine_body 0.01 0.009 0.009 200 0.0000 0.0000 Mail::SpamAssassin::Message::get_pristine_header 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_defaults_from_command_list 0.00 0.000 -0.000 501 0.0000 -0.000 Mail::SpamAssassin::Message::Metadata::finish 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::set_score_set 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::finish_learner 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Bayes::finish 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Bayes::sanity_check_is_untied 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::read_scoreonly_config 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::parse_scores_only 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::ArchiveIterator::new 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::ArchiveIterator::set_functions 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::dbg 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::secure_tmpfile 0.00 0.000 -0.000 3 0.0000 -0.000 Fcntl::constant 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::NetSet::new 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::PluginHandler::new 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::clean_path_in_taint_mode 0.00 0.000 -0.000 3 0.0000 -0.000 Mail::SpamAssassin::Util::untaint_file_path 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::am_running_in_taint_mode 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::sed_path 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::first_existing_path 0.00 0.000 -0.000 1 0.0000 -0.000 File::Spec::Unix::curdir 0.00 0.000 -0.000 1 0.0000 -0.000 File::Spec::Unix::rootdir 0.00 0.000 -0.000 4 0.0000 -0.000 Time::Local::cheat 0.00 0.000 -0.000 2 0.0000 -0.000 File::Spec::Unix::tmpdir 0.00 0.000 0.010 26 0.0000 0.0004 Mail::SpamAssassin::Message::Node::__decode_header 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Util::dbg 0.00 0.000 -0.000 27 0.0000 -0.000 MIME::Base64::decode_base64 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::portable_getpwuid 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::am_running_on_windows 0.00 0.000 0.849 1 0.0000 0.8495 Mail::SpamAssassin::compile_now 0.00 0.000 0.403 501 0.0000 0.0008 Mail::SpamAssassin::init 0.00 0.000 -0.000 3 0.0000 -0.000 File::Spec::Unix::catfile 0.00 0.000 -0.000 3 0.0000 -0.000 File::Spec::Unix::catdir 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Util::local_tz 0.00 0.000 -0.000 3 0.0000 -0.000 File::Spec::Unix::canonpath 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::get_cf_files_in_dir 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::get_and_create_userstate_dir 0.00 0.000 0.345 1 0.0000 0.3445 Mail::SpamAssassin::Conf::parse_rules 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::build_command_luts 0.00 0.000 -0.000 1 0.0000 -0.000 main::init_results 0.00 0.000 -0.000 2 0.0000 -0.000 IO::Handle::autoflush 0.00 0.000 -0.000 4 0.0000 -0.000 Symbol::qualify 0.00 0.000 -0.000 2 0.0000 -0.000 SelectSaver::new 0.00 0.000 0.020 4 0.0000 0.0050 Mail::SpamAssassin::Conf::load_plugin 0.00 0.000 0.010 49 0.0000 0.0002 Mail::SpamAssassin::PluginHandler::dbg 0.00 0.000 -0.000 4 0.0000 -0.000 Mail::SpamAssassin::Plugin::new 0.00 0.000 -0.000 3 0.0000 -0.000 Net::DNS::Resolver::Base::new 0.00 0.000 -0.000 3 0.0000 -0.000 Net::DNS::Resolver::Base::defaults 0.00 0.000 -0.000 11 0.0000 -0.000 Mail::SpamAssassin::Plugin::register_eval_rule 0.00 0.000 -0.000 11 0.0000 -0.000 Mail::SpamAssassin::Conf::register_eval_rule 0.00 0.000 0.020 1 0.0000 0.0200 Mail::SpamAssassin::Conf::finish_parsing 0.00 0.000 -0.000 177 0.0000 -0.000 HTML::Parser::_alloc_pstate Total Elapsed Time = 159.8105 Seconds User+System Time = 158.4045 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.00 0.000 0.010 4 0.0000 0.0025 Mail::SpamAssassin::PluginHandler::register_plugin 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::check_for_missing_hb_separator 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_default_scores 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::lint_check 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::register_plugin_eval_glue 0.00 0.000 -0.000 531 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::ran_rule_debug_code 0.00 0.000 -0.000 42 0.0000 -0.000 Mail::SpamAssassin::HTML::html_declaration 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::dbg 0.00 0.000 -0.000 41 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::add_to_addrlist_rcvd 0.00 0.000 -0.000 35 0.0000 -0.000 Mail::SpamAssassin::Plugin::inhibit_further_callbacks 0.00 0.000 -0.000 10 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::cond_clause_plugin_loaded 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::get_charset_from_ct_line 0.00 0.000 -0.000 531 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::hash_line_for_rule 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::html_text_not_match 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::Message::get_pristine 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::_check_language 0.00 0.000 -0.000 5 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_bool_value 0.00 0.000 -0.000 3 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_numeric_value 0.00 0.000 -0.000 3 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_string_value 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::harvest_dnsbl_queries 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::rbl_finish 0.00 0.000 -0.000 17 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_template_append 0.00 0.000 -0.000 16 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::setup_default_code_cb 0.00 0.000 0.010 1 0.0000 0.0100 Mail::SpamAssassin::new 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Version 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::learn 0.00 0.000 -0.000 6 0.0000 -0.000 Digest::SHA1::sha1_hex 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::set_template_clear 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::lookup_ptr 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::load_resolver 0.00 0.000 -0.000 4 0.0000 -0.000 Mail::SpamAssassin::Conf::load_plugin_succeeded 0.00 0.000 -0.000 301 0.0000 -0.000 Mail::SpamAssassin::PerMsgStatus::delete_fulltext_tmpfile 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::info 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::new 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::Parser::new 0.00 0.000 -0.000 1 0.0000 -0.000 Mail::SpamAssassin::Conf::set_default_commands 0.00 0.000 -0.000 51 0.0000 -0.000 Mail::SpamAssassin::HTML::html_comment 0.00 0.000 -0.000 2 0.0000 -0.000 Mail::SpamAssassin::HTML::_merge_uri ------- end ---------------------------- -- Daniel Quinlan ApacheCon! 13-17 November (3 SpamAssassin http://www.pathname.com/~quinlan/ http://www.apachecon.com/ sessions & more)
