I've been working a little on reducing RAM consumption for 3.2.0.  Here's
what it looks like at the moment, measured using a test ruleset and spamd.

SpamAssassin 3.1.x --

  jm       12333  24936:22372   0 pts/5     0:00       /usr/bin/perl -T -w 
../spamd/spamd -D -x -s stderr -C /home/jm/ftp/r --siteconfigpath
  jm       12338  25332:22828   0 pts/5     0:00         spamd child
  jm       12339  24936:21056   0 pts/5     0:00         spamd child

SpamAssassin 3.2.0 --

  jm       12393  24428:22284   0 pts/8     0:01       /usr/bin/perl -I../lib 
-T -w ../spamd/spamd -D -x -s stderr -C /home/jm/ftp/r
  jm       12396  24924:22268   0 pts/8     0:00         spamd child
  jm       12397  24428:20640   0 pts/8     0:00         spamd child

in other words, for the running "worker" processes, SpamAssassin 3.2.0
uses around 500KB less RAM than 3.1.x does.  yay!

The test ruleset btw is these files from 3.2.0 svn trunk's rules dir:

20_advance_fee.cf  20_drugs.cf            20_phrases.cf  20_vbounce.cf
20_body_tests.cf   20_fake_helo_tests.cf  20_porn.cf     25_uribl.cf
20_dnsbl_tests.cf  20_net_tests.cf        20_ratware.cf  50_scores.cf

The message and command-lines are from t/spamd.t, running the msg through
a few times to ensure the spamd children are exercised.

Unfortunately, SpamAssassin 3.2.0's addition of more rules and plugins may
outweigh that ;) -- but the code for core ruletypes is more RAM-efficient
at the moment.

--j.

Reply via email to