Willy Tarreau
fda6dc9597
MINOR: regex: use a thread-local match pointer for pcre2
...
The pcre2 matching requires an array of matches for grouping, that is
allocated when executing the rule by pre-processing it, and that is
immediately freed after use. This is quite inefficient and results in
annoying patterns in "show profiling" that attribute the allocations
to libpcre2 and the releases to haproxy.
A good suggestion from Dragan is to pre-allocate these per thread,
since the entry is not specific to a regex. In addition we're already
limited to MAX_MATCH matches so we don't even have the problem of
having to grow it while parsing nor processing.
The current patch adds a per-thread pair of init/deinit functions to
allocate a thread-local entry for that, and gets rid of the dynamic
allocations. It will result in cleaner memory management patterns and
slightly higher performance (+2.5%) when using pcre2.
2025-10-13 16:56:43 +02:00
..
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-05 11:32:20 +02:00
2025-10-09 12:04:22 +02:00
2025-09-11 16:32:34 +02:00
2025-10-10 14:41:15 +02:00
2025-10-08 10:29:41 +02:00
2025-10-08 11:10:42 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-10-10 11:22:37 +02:00
2025-09-17 17:19:33 +02:00
2025-09-16 09:23:46 +02:00
2025-09-18 16:49:51 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-06 11:05:52 +02:00
2025-09-11 16:32:34 +02:00
2025-09-10 16:48:09 +02:00
2025-09-17 14:30:32 +02:00
2025-09-17 14:30:32 +02:00
2025-09-18 16:49:51 +02:00
2025-10-08 11:10:42 +02:00
2025-10-08 11:10:42 +02:00
2025-09-16 09:23:46 +02:00
2025-10-08 11:10:42 +02:00
2025-10-02 15:29:58 +02:00
2025-10-08 11:01:36 +02:00
2025-09-08 16:04:40 +02:00
2025-10-08 11:10:25 +02:00
2025-09-09 16:55:09 +02:00
2025-09-18 16:49:51 +02:00
2025-10-08 10:29:41 +02:00
2025-09-19 14:59:28 +02:00
2025-10-08 11:10:25 +02:00
2025-09-11 14:31:32 +02:00
2025-10-13 10:38:52 +02:00
2025-10-01 18:13:33 +02:00
2025-09-18 16:49:51 +02:00
2025-09-18 16:49:51 +02:00
2025-10-06 09:30:07 +02:00
2025-10-08 11:10:42 +02:00
2025-10-10 11:16:21 +02:00
2025-10-08 11:10:42 +02:00
2025-09-16 09:23:46 +02:00
2025-09-16 09:23:46 +02:00
2025-09-25 15:28:22 +02:00
2025-09-10 19:14:05 +02:00
2025-09-11 16:32:34 +02:00
2025-09-05 15:56:42 +02:00
2025-09-17 17:19:33 +02:00
2025-10-08 10:29:41 +02:00
2025-10-08 11:10:42 +02:00
2025-09-11 09:51:28 +02:00
2025-09-11 09:51:28 +02:00
2025-09-11 09:51:28 +02:00
2025-09-11 09:51:28 +02:00
2025-09-11 09:51:28 +02:00
2025-09-11 09:51:28 +02:00
2025-10-01 10:23:01 +02:00
2025-10-13 16:56:43 +02:00
2025-10-03 09:08:10 +02:00
2025-09-18 15:27:32 +02:00
2025-10-13 10:38:52 +02:00
2025-09-18 16:49:51 +02:00
2025-10-01 18:13:33 +02:00
2025-09-18 16:49:51 +02:00
2025-10-03 14:31:05 +02:00
2025-10-13 10:38:52 +02:00
2025-09-11 09:51:28 +02:00
2025-09-15 15:34:36 +02:00
2025-10-01 10:18:53 +02:00
2025-10-13 15:44:45 +02:00
2025-09-11 14:31:32 +02:00
2025-09-18 16:49:51 +02:00
2025-10-10 11:11:44 +02:00
2025-09-30 16:25:07 +02:00
2025-10-08 11:10:42 +02:00
2025-10-01 10:18:53 +02:00
2025-09-18 16:49:51 +02:00
2025-09-18 16:49:51 +02:00
2025-09-09 16:55:09 +02:00
2025-10-13 10:38:52 +02:00
2025-09-16 10:41:19 +02:00
2025-09-18 08:31:57 +02:00
2025-09-16 10:51:23 +02:00
2025-10-01 10:18:53 +02:00