You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by snowcrash+spamassassin <sc...@gmail.com> on 2007/03/12 05:42:37 UTC

sa-compile usage questions

some questions about sa-compile usage:

(1) how do we verify that the compiled rules are working? is a
'healthy' --lint sufficient?

(2) how do/should we meaure the improved (hopefully) performance due
to the compiled rules?

(3) do compiled rules automatically take precedence over uncompiled
rules? or, must we remove the uncompiled rules from the rule path?
i'm guessing it's done auto-magically ...

(4) should (must?) we run sa-compile at every rule update?  e.g., if
we're sa-update'ing once/hr, running sa-compile hourly is more than a
bit cpu intensive.

(5) does sa-compile detect diffs/changes between runs and only compile
changes? or does it recompile ALL available rules each time?

thanks.

Re: sa-compile usage questions

Posted by snowcrash+spamassassin <sc...@gmail.com>.
> > (1) how do we verify that the compiled rules are working? is a
> > 'healthy' --lint sufficient?
>
> Well, it's a bit tricky -- run a --lint, and look out for lines like this:
>
> [15144] dbg: rules: running one_line_body tests; score so far=0
> [15144] dbg: zoom: run_body_fast_scan for body_0 start
> [15144] dbg: zoom: run_body_fast_scan for body_0 done

after a,

  spamassassin --lint --nocreate-prefs --debug >& out.txt

checking,

 grep one_line_body out.txt
   665  [6498] dbg: rules: running one_line_body tests; score so far=0
   677  [6498] dbg: rules: running one_line_body tests; score so far=0
   685  [6498] dbg: rules: running one_line_body tests; score so far=0
   693  [6498] dbg: rules: running one_line_body tests; score so far=0
   725  [6498] dbg: rules: running one_line_body tests; score so far=0
   798  [6498] dbg: rules: running one_line_body tests; score so far=2.75
   833  [6498] dbg: rules: running one_line_body tests; score so far=5.225
   845  [6498] dbg: rules: running one_line_body tests; score so far=5.225

 grep fast out.txt
   666  [6498] dbg: plugin:
Mail::SpamAssassin::Plugin::Rule2XSBody=HASH(0x1f34428) implements
'run_body_fast_scan', priority 0
   726  [6498] dbg: zoom: run_body_fast_scan for body_0 start
   727  [6498] dbg: zoom: run_body_fast_scan for body_0 done
   799  [6498] dbg: zoom: run_body_fast_scan for body_500 start
   800  [6498] dbg: zoom: run_body_fast_scan for body_500 done

out of 854 lines in "out.txt", is this _sufficient_ indication that
all's working ok?

> note btw that you need to have this line uncommented in v320.pre:
>   loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody

of course.

> > (2) how do/should we meaure the improved (hopefully) performance due
> > to the compiled rules?
>
> Compare the scan times for a collection of ham and spam mails.  they
> should be faster ;)

i.e., DIY -- nothing auto-magical. thanks.

> > (3) do compiled rules automatically take precedence over uncompiled
> > rules? or, must we remove the uncompiled rules from the rule path?
> > i'm guessing it's done auto-magically ...
>
> It's automatic.

ok. thanks.

> > (4) should (must?) we run sa-compile at every rule update?  e.g., if
> > we're sa-update'ing once/hr, running sa-compile hourly is more than a
> > bit cpu intensive.
> >
> > (5) does sa-compile detect diffs/changes between runs and only compile
> > changes? or does it recompile ALL available rules each time?
>
> It'll always recompile fully.
> However sa-update will not exit with status "0" unless it downloads
> an update, so you can do:
>
>   sudo sa-update && sudo sa-compile && sudo /etc/init.d/spamassassin reload

aha. that should work. thanks.