How to use speedtest
--------------------

Run it like this:

perl -d:DProf speedtest <list> <of> <messages> <to> <scan>

That will run SA over the individual messages listed as arguments, and produce a timings output file called tmon.out, which can be read by dprofpp

So you'll then want to do something like:

dprofpp

Which will dump something like:

Total Elapsed Time = 3.318045 Seconds
  User+System Time = 2.408151 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 22.0   0.530  1.228      8   0.0662 0.1535  Mail::SpamAssassin::PerMsgStatus::_body_tests
 6.64   0.160  0.160      8   0.0200 0.0200  Mail::SpamAssassin::PerMsgStatus::porn_word_test
 5.81   0.140  1.377      8   0.0175 0.1722  Mail::SpamAssassin::PerMsgStatus::do_body_tests
 5.77   0.139  1.703     21   0.0066 0.0811  Mail::SpamAssassin::PerMsgStatus::BEGIN
 5.56   0.134  0.178      1   0.1338 0.1775  Mail::SpamAssassin::Conf::_parse
 5.40   0.130  0.116    970   0.0001 0.0001  Mail::SpamAssassin::NoMailAudit::_get_header_list
 5.40   0.130  0.758     13   0.0100 0.0583  Mail::SpamAssassin::BEGIN
 5.36   0.129  0.302    924   0.0001 0.0003  Mail::SpamAssassin::PerMsgStatus::get
 4.15   0.100  0.189    970   0.0001 0.0002  Mail::SpamAssassin::NoMailAudit::get_header
 3.28   0.079  0.204     14   0.0057 0.0146  Razor::Client::BEGIN
 3.11   0.075  0.184      8   0.0094 0.0230  Mail::SpamAssassin::PerMsgStatus::_rawbody_tests
 2.91   0.070  0.085      8   0.0087 0.0107  Mail::SpamAssassin::PerMsgStatus::do_body_uri_tests
 2.49   0.060  0.079      8   0.0075 0.0099  Mail::SpamAssassin::PerMsgStatus::RATWARE_head_test
 2.49   0.060  0.067      8   0.0075 0.0084  Mail::SpamAssassin::PerMsgStatus::get_decoded_stripped_body_text_array
 2.49   0.060  0.085     30   0.0020 0.0028  Net::DNS::RR::BEGIN


The functions in the final column which you care about are the ones that match /_test$/

You can increase the number of functions listed using the "-O xxxx" option to dprofpp.