Reducing CPU usage
Simon Lyall
simon at darkmere.gen.nz
Tue Dec 18 23:10:37 CET 2012
On Tue, 18 Dec 2012, James Pearson wrote:
> Towards the end, you mention moving a rule from being of the form
>
> if ((a || b ) && c) {
>
> to
>
> if (a || b) {
> if (c) {
>
> , where c is an expensive check and (a || b) rules out most pages, and seeing a
> CPU usage decrease. This seems odd to me, since I'd expect short-circuiting to
> cut out the check for c if (a || b) is false.
In reality what I did was closer to changing:
if ((a || b ) && c) { }
if ((a || b ) && d) { }
if ((a || b ) && e) { }
to:
if (a || b) {
if (c) { }
if (d) { }
if (e) { }
}
where c,d & e were large regex functions. The test ( a || b ) was matched
about 14% of the time.
I don't think I would see as large a drop in CPU usage if "c" wasn't being
checked in the original code when even when (a || b) failed.
--
Simon Lyall | Very Busy | Web: http://www.darkmere.gen.nz/
"To stay awake all night adds a day to your life" - Stilgar | eMT.
More information about the varnish-misc
mailing list