Files
go-admin/common
zhangwenjian 0fa015b6d0 perf👌: stop recompiling patterns when scanning the casbin exclusion list
AuthCheckRole walks CasbinExclude for every non-admin request, and used
casbin's util.KeyMatch2 to test each entry. That delegates to
util.RegexMatch, which is regexp.MatchString - it compiles its pattern on
every call - so a 32-entry list cost about 2,566 allocations per request
before the request reached Enforce.

Test the method first, which rules out most entries with a string
compare, and take the path test from go-admin-core, whose KeyMatch2
answers the same thing without recompiling. The scan drops to 52ns and no
allocations.

The loop moves out of AuthCheckRole so the tests exercise the code a
request runs rather than a copy of it, and an allocation budget fails if
the uncached matcher comes back.
2026-08-31 14:01:32 +08:00
..
2026-08-23 13:26:46 +08:00
2026-08-23 13:26:46 +08:00
2026-08-23 13:26:46 +08:00
2026-08-23 13:26:46 +08:00
2023-08-01 22:38:41 +08:00
2026-08-23 13:26:46 +08:00
2026-08-23 13:26:46 +08:00