Yes and no. There aren't many negative scored rules, which could easily be put into a low priority to run first.
The issue, which is where Matt was going I believe, is that the reason score based short circuiting was removed is that it's horribly slow to keep checking the score after each rule runs. You can do it at the end of a priority's run, but then you have to split the rules across multiple priorities, which does impact performance. I made some comments about this kind of thing in http://issues.apache.org/SpamAssassin/show_bug.cgi?id=3109 and envisioned SA auto-prioritizing rules for short circuiting for things like what I mentioned in c7, but there was some strong disagreement about things like SC based on score and so it didn't get implemented in the current code. On Fri, Jan 18, 2008 at 11:22:55PM -0500, Matt Kettler wrote: > You can't run the rules in score-order without driving SA's performance > into the ground. > > The key here is SA doesn't run tests sequentially, it runs them in > parallel as it works its way through the body. this allows for good, > efficient use of memory cache. > > By running rules in score-order, you break this, forcing SA to run > through the body multiple times, degrading performance. > > > George Georgalis wrote: > >Noticed today (again) how long some messages take to test. The > >first thing that comes to mind is some dns is getting overloaded > >answering joe-job rbldns backskatter, causing timeouts or slow > >responce times. > > > >Then I was thinking about how some tests are excluded because they > >generate too much regex load, which can be problematic even if > >it's a good test. > > > >Some time back I recall a thread, amounting to why not quit > >remaining tests if spam threshold is reached, the answer was some > >tests have negative scores and could change the result. > > > >So, here are two ideas, on startup, after all the conf files are > >parsed create a hash that has tests sorted by score, with the > >largest positive tests starting after zero, ordered like this > > > >-5 > >-5 > >-2 > >-1 > >0 > >6 > >5 > >4 > >2 > >2 > >1 > > > >then test in that order, whenever a test brings the message > >to a spam score level, exit with result. (and add a switch to > >optionally run all tests) > > > >Another approach might be simpler to integrate than above, simply > >do all the negative score tests first and pull out if the score > >gets to spam level. > > > >// George > > > > > > -- Randomly Selected Tagline: No one can feel as helpless as the owner of a sick goldfish.
pgpFz7e9zaSsp.pgp
Description: PGP signature