mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-14 21:31:00 +01:00
This makes a significant difference when loading large files and during commit and clear operations, thanks to improved cache locality. In the measurements below, master refers to the code before any of the changes to the patterns code, not the code before this one commit. Timing the replacement of 10M entries from the CLI with this command which also reports timestamps at start, end of upload and end of clear: $ (echo "prompt i"; echo "show activity"; echo "prepare acl #0"; awk '{print "add acl @1 #0",$0}' < bad-ip.map; echo "show activity"; echo "commit acl @1 #0"; echo "clear acl @0 #0";echo "show activity") | socat -t 10 - /tmp/sock1 | grep ^uptim master, on a 3.7 GHz EPYC, 3 samples: uptime_now: 6.087030 uptime_now: 25.981777 => 21.9 sec insertion time uptime_now: 29.286368 => 3.3 sec commit+clear uptime_now: 5.748087 uptime_now: 25.740675 => 20.0s insertion time uptime_now: 29.039023 => 3.3 s commit+clear uptime_now: 7.065362 uptime_now: 26.769596 => 19.7s insertion time uptime_now: 30.065044 => 3.3s commit+clear And after this commit: uptime_now: 6.119215 uptime_now: 25.023019 => 18.9 sec insertion time uptime_now: 27.155503 => 2.1 sec commit+clear uptime_now: 5.675931 uptime_now: 24.551035 => 18.9s insertion uptime_now: 26.652352 => 2.1s commit+clear uptime_now: 6.722256 uptime_now: 25.593952 => 18.9s insertion uptime_now: 27.724153 => 2.1s commit+clear Now timing the startup time with a 10M entries file (on another machine) on master, 20 samples: Standard Deviation, s: 0.061652677408033 Mean: 4.217 And after this commit: Standard Deviation, s: 0.081821371548669 Mean: 3.78