[CONTRIB] halog: minor speed improvement in timer parser

The timer parser looks for the next slash after the last timer, which is
very far away. Those 4 occurrences have been fixed to match the way it's
done in URL sorting, which is faster. Average speed gain is 5-6% on -srv
and -pct.
(cherry picked from commit 3555671c93695f48c02ef05c8bb228523f17ca20)
This commit is contained in:
Willy Tarreau 2010-10-28 20:39:50 +02:00
parent abe45b6bb3
commit 24bcb4f2ff

View File

@ -502,17 +502,19 @@ int main(int argc, char **argv)
} }
e = field_stop(b + 1); e = field_stop(b + 1);
/* we have field TIME_FIELD in [b]..[e-1] */ /* we have field TIME_FIELD in [b]..[e-1], let's check only the response time */
p = b; p = b;
err = 0; err = 0;
for (f = 0; f < 4 && *p; f++) { f = 0;
while (*p) {
tps = str2ic(p); tps = str2ic(p);
if (tps < 0) { if (tps < 0) {
tps = -1; tps = -1;
err = 1; err = 1;
} }
if (++f == 4)
break;
SKIP_CHAR(p, '/'); SKIP_CHAR(p, '/');
} }
@ -577,13 +579,15 @@ int main(int argc, char **argv)
p = b; p = b;
err = 0; err = 0;
for (f = 0; f < 5 && *p; f++) { f = 0;
while (*p) {
array[f] = str2ic(p); array[f] = str2ic(p);
if (array[f] < 0) { if (array[f] < 0) {
array[f] = -1; array[f] = -1;
err = 1; err = 1;
} }
if (++f == 5)
break;
SKIP_CHAR(p, '/'); SKIP_CHAR(p, '/');
} }
@ -740,13 +744,15 @@ int main(int argc, char **argv)
p = b; p = b;
err = 0; err = 0;
for (f = 0; f < 5 && *p; f++) { f = 0;
while (*p) {
array[f] = str2ic(p); array[f] = str2ic(p);
if (array[f] < 0) { if (array[f] < 0) {
array[f] = -1; array[f] = -1;
err = 1; err = 1;
} }
if (++f == 5)
break;
SKIP_CHAR(p, '/'); SKIP_CHAR(p, '/');
} }