Skip to content
Browse files

[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)
  • Loading branch information...
1 parent abe45b6 commit 24bcb4f2ff353281467c3f0dccee9f51cfa7554c Willy Tarreau committed Oct 28, 2010
Showing with 13 additions and 7 deletions.
  1. +13 −7 contrib/halog/halog.c
View
20 contrib/halog/halog.c
@@ -502,17 +502,19 @@ int main(int argc, char **argv)
}
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;
err = 0;
- for (f = 0; f < 4 && *p; f++) {
+ f = 0;
+ while (*p) {
tps = str2ic(p);
if (tps < 0) {
tps = -1;
err = 1;
}
-
+ if (++f == 4)
+ break;
SKIP_CHAR(p, '/');
}
@@ -577,13 +579,15 @@ int main(int argc, char **argv)
p = b;
err = 0;
- for (f = 0; f < 5 && *p; f++) {
+ f = 0;
+ while (*p) {
array[f] = str2ic(p);
if (array[f] < 0) {
array[f] = -1;
err = 1;
}
-
+ if (++f == 5)
+ break;
SKIP_CHAR(p, '/');
}
@@ -740,13 +744,15 @@ int main(int argc, char **argv)
p = b;
err = 0;
- for (f = 0; f < 5 && *p; f++) {
+ f = 0;
+ while (*p) {
array[f] = str2ic(p);
if (array[f] < 0) {
array[f] = -1;
err = 1;
}
-
+ if (++f == 5)
+ break;
SKIP_CHAR(p, '/');
}

0 comments on commit 24bcb4f

Please sign in to comment.
Something went wrong with that request. Please try again.