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.
