You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@casbin.apache.org by "Herrtian (via GitHub)" <gi...@apache.org> on 2026/04/15 17:49:13 UTC
[PR] perf: pre-compile regex in RegexMatch for better performance [casbin]
Herrtian opened a new pull request, #1721:
URL: https://github.com/apache/casbin/pull/1721
## Summary
Ref #1690
`RegexMatch()` used `regexp.MatchString()` which recompiles the regex pattern on **every single invocation**. This is a performance bottleneck since `RegexMatch` is called by `KeyMatch2`, `KeyMatch3`, `KeyMatch5`, and can be used directly in policy matchers.
## Change
Replaced `regexp.MatchString()` with the existing `mustCompileOrGet()` cache that is already used throughout the codebase for other KeyMatch functions. The compiled regex is cached in a thread-safe map and reused on subsequent calls.
```go
// Before: recompiles regex on every call
func RegexMatch(key1 string, key2 string) bool {
res, err := regexp.MatchString(key2, key1)
if err != nil {
panic(err)
}
return res
}
// After: uses cached compiled regex
func RegexMatch(key1 string, key2 string) bool {
return mustCompileOrGet(key2).MatchString(key1)
}
```
## Test plan
- [x] `go build ./...` passes
- [x] `go test ./...` — all tests pass
- [x] `go test ./util/...` — all util tests pass including regex match tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For additional commands, e-mail: commits-help@casbin.apache.org
Re: [PR] perf: pre-compile regex in RegexMatch for better performance [casbin]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #1721:
URL: https://github.com/apache/casbin/pull/1721#issuecomment-4324015148
## Benchmark Comparison
Comparing base branch (`017ae0e`)
vs PR branch (`f4fa290`)
```
goos: linux
goarch: amd64
pkg: github.com/casbin/casbin/v3
cpu: AMD EPYC 9V74 80-Core Processor
│ base-bench.txt │ pr-bench.txt │
│ sec/op │ sec/op vs base Diff │
CachedRaw 18.11n ± ∞ ¹ 18.15n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.22% ➡️
CachedBasicModel 142.6n ± ∞ ¹ 147.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +3.30% ➡️
CachedRBACModel 143.2n ± ∞ ¹ 145.8n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.82% ➡️
CachedRBACModelSmall 146.6n ± ∞ ¹ 149.5n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.98% ➡️
CachedRBACModelMedium 156.4n ± ∞ ¹ 158.4n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.28% ➡️
CachedRBACModelLarge 143.3n ± ∞ ¹ 145.9n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.81% ➡️
CachedRBACModelWithResourceRoles 144.1n ± ∞ ¹ 145.2n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.76% ➡️
CachedRBACModelWithDomains 152.4n ± ∞ ¹ 155.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.90% ➡️
CachedABACModel 2.475µ ± ∞ ¹ 2.479µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.16% ➡️
CachedKeyMatchModel 157.2n ± ∞ ¹ 159.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.34% ➡️
CachedRBACModelWithDeny 142.8n ± ∞ ¹ 145.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.75% ➡️
CachedPriorityModel 143.6n ± ∞ ¹ 145.2n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.11% ➡️
CachedWithEnforceContext 204.5n ± ∞ ¹ 209.0n ± ∞ ¹ ~ (p=1.000 n=1) ² +2.20% ➡️
CachedRBACModelMediumParallel 154.3n ± ∞ ¹ 155.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.65% ➡️
HasPolicySmall 372.8n ± ∞ ¹ 383.9n ± ∞ ¹ ~ (p=1.000 n=1) ² +2.98% ➡️
HasPolicyMedium 380.3n ± ∞ ¹ 375.7n ± ∞ ¹ ~ (p=1.000 n=1) ² -1.21% ➡️
HasPolicyLarge 402.0n ± ∞ ¹ 425.6n ± ∞ ¹ ~ (p=1.000 n=1) ² +5.87% ➡️
AddPolicySmall 439.0n ± ∞ ¹ 444.4n ± ∞ ¹ ~ (p=1.000 n=1) ² +1.23% ➡️
AddPolicyMedium 612.1n ± ∞ ¹ 545.7n ± ∞ ¹ ~ (p=1.000 n=1) ² -10.85% 🚀
AddPolicyLarge 1.096µ ± ∞ ¹ 1.062µ ± ∞ ¹ ~ (p=1.000 n=1) ² -3.10% ➡️
RemovePolicySmall 427.5n ± ∞ ¹ 428.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.19% ➡️
RemovePolicyMedium 450.5n ± ∞ ¹ 453.3n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.62% ➡️
RemovePolicyLarge 500.4n ± ∞ ¹ 501.2n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.16% ➡️
Raw 18.24n ± ∞ ¹ 18.13n ± ∞ ¹ ~ (p=1.000 n=1) ² -0.60% ➡️
BasicModel 3.289µ ± ∞ ¹ 3.256µ ± ∞ ¹ ~ (p=1.000 n=1) ² -1.00% ➡️
RBACModel 4.865µ ± ∞ ¹ 4.867µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.04% ➡️
RBACModelSizes/small 44.15µ ± ∞ ¹ 44.13µ ± ∞ ¹ ~ (p=1.000 n=1) ² -0.05% ➡️
RBACModelSizes/medium 445.4µ ± ∞ ¹ 431.2µ ± ∞ ¹ ~ (p=1.000 n=1) ² -3.19% ➡️
RBACModelSizes/large 5.296m ± ∞ ¹ 5.141m ± ∞ ¹ ~ (p=1.000 n=1) ² -2.93% ➡️
RBACModelSmall 51.28µ ± ∞ ¹ 51.35µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.14% ➡️
RBACModelMedium 500.8µ ± ∞ ¹ 493.2µ ± ∞ ¹ ~ (p=1.000 n=1) ² -1.52% ➡️
RBACModelLarge 5.345m ± ∞ ¹ 5.340m ± ∞ ¹ ~ (p=1.000 n=1) ² -0.09% ➡️
RBACModelWithResourceRoles 3.976µ ± ∞ ¹ 3.997µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.53% ➡️
RBACModelWithDomains 4.653µ ± ∞ ¹ 4.622µ ± ∞ ¹ ~ (p=1.000 n=1) ² -0.67% ➡️
ABACModel 2.392µ ± ∞ ¹ 2.405µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.54% ➡️
ABACRuleModel 3.861m ± ∞ ¹ 3.894m ± ∞ ¹ ~ (p=1.000 n=1) ² +0.85% ➡️
KeyMatchModel 5.361µ ± ∞ ¹ 4.012µ ± ∞ ¹ ~ (p=1.000 n=1) ² -25.16% 🚀
RBACModelWithDeny 6.159µ ± ∞ ¹ 6.193µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.55% ➡️
PriorityModel 3.758µ ± ∞ ¹ 3.818µ ± ∞ ¹ ~ (p=1.000 n=1) ² +1.60% ➡️
RBACModelWithDomainPatternLarge 11.627µ ± ∞ ¹ 7.202µ ± ∞ ¹ ~ (p=1.000 n=1) ² -38.06% 🚀
RoleManagerSmall 41.97µ ± ∞ ¹ 42.53µ ± ∞ ¹ ~ (p=1.000 n=1) ² +1.33% ➡️
RoleManagerMedium 449.6µ ± ∞ ¹ 450.7µ ± ∞ ¹ ~ (p=1.000 n=1) ² +0.24% ➡️
RoleManagerLarge 5.532m ± ∞ ¹ 5.424m ± ∞ ¹ ~ (p=1.000 n=1) ² -1.95% ➡️
BuildRoleLinksWithPatternLarge 249.7m ± ∞ ¹ 251.9m ± ∞ ¹ ~ (p=1.000 n=1) ² +0.88% ➡️
BuildRoleLinksWithDomainPatternLarge 7.954m ± ∞ ¹ 8.153m ± ∞ ¹ ~ (p=1.000 n=1) ² +2.50% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge 254.6m ± ∞ ¹ 254.9m ± ∞ ¹ ~ (p=1.000 n=1) ² +0.12% ➡️
HasLinkWithPatternLarge 820.5n ± ∞ ¹ 823.2n ± ∞ ¹ ~ (p=1.000 n=1) ² +0.33% ➡️
HasLinkWithDomainPatternLarge 324.4n ± ∞ ¹ 322.3n ± ∞ ¹ ~ (p=1.000 n=1) ² -0.65% ➡️
HasLinkWithPatternAndDomainPatternLarge 809.6n ± ∞ ¹ 826.6n ± ∞ ¹ ~ (p=1.000 n=1) ² +2.10% ➡️
ConcurrentHasLinkWithMatching 1.076µ ± ∞ ¹ 1.093µ ± ∞ ¹ ~ (p=1.000 n=1) ² +1.58% ➡️
geomean 4.393µ 4.339µ -1.23% ➡️
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ base-bench.txt │ pr-bench.txt │
│ B/op │ B/op vs base Diff │
CachedRaw 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedBasicModel 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModel 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelSmall 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelMedium 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelLarge 96.00 ± ∞ ¹ 96.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithResourceRoles 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithDomains 120.0 ± ∞ ¹ 120.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedABACModel 1.495Ki ± ∞ ¹ 1.497Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.13% ➡️
CachedKeyMatchModel 152.0 ± ∞ ¹ 152.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithDeny 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedPriorityModel 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedWithEnforceContext 176.0 ± ∞ ¹ 176.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelMediumParallel 104.0 ± ∞ ¹ 104.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicySmall 102.0 ± ∞ ¹ 102.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicyMedium 109.0 ± ∞ ¹ 109.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicyLarge 117.0 ± ∞ ¹ 117.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicySmall 152.0 ± ∞ ¹ 152.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicyMedium 165.0 ± ∞ ¹ 165.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicyLarge 421.0 ± ∞ ¹ 418.0 ± ∞ ¹ ~ (p=1.000 n=1) ³ -0.71% ➡️
RemovePolicySmall 166.0 ± ∞ ¹ 166.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RemovePolicyMedium 173.0 ± ∞ ¹ 173.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RemovePolicyLarge 181.0 ± ∞ ¹ 181.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
Raw 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
BasicModel 1.471Ki ± ∞ ¹ 1.472Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.07% ➡️
RBACModel 2.006Ki ± ∞ ¹ 2.010Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.20% ➡️
RBACModelSizes/small 19.68Ki ± ∞ ¹ 19.70Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.10% ➡️
RBACModelSizes/medium 186.9Ki ± ∞ ¹ 187.0Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.05% ➡️
RBACModelSizes/large 1.813Mi ± ∞ ¹ 1.814Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.06% ➡️
RBACModelSmall 19.68Ki ± ∞ ¹ 19.70Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.10% ➡️
RBACModelMedium 189.7Ki ± ∞ ¹ 189.7Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
RBACModelLarge 1.840Mi ± ∞ ¹ 1.840Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
RBACModelWithResourceRoles 1.785Ki ± ∞ ¹ 1.788Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.17% ➡️
RBACModelWithDomains 1.776Ki ± ∞ ¹ 1.778Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.11% ➡️
ABACModel 1.487Ki ± ∞ ¹ 1.489Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.13% ➡️
ABACRuleModel 1.173Mi ± ∞ ¹ 1.174Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.09% ➡️
KeyMatchModel 2.974Ki ± ∞ ¹ 1.644Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ -44.72% 🚀
RBACModelWithDeny 2.408Ki ± ∞ ¹ 2.410Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.08% ➡️
PriorityModel 1.715Ki ± ∞ ¹ 1.717Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.12% ➡️
RBACModelWithDomainPatternLarge 8.652Ki ± ∞ ¹ 4.362Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ -49.58% 🚀
RoleManagerSmall 800.0 ± ∞ ¹ 800.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RoleManagerMedium 13.63Ki ± ∞ ¹ 13.63Ki ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RoleManagerLarge 224.6Ki ± ∞ ¹ 224.6Ki ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
BuildRoleLinksWithPatternLarge 60.66Mi ± ∞ ¹ 60.67Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.02% ➡️
BuildRoleLinksWithDomainPatternLarge 3.935Mi ± ∞ ¹ 3.939Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.10% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge 62.28Mi ± ∞ ¹ 62.26Mi ± ∞ ¹ ~ (p=1.000 n=1) ³ -0.03% ➡️
HasLinkWithPatternLarge 112.0 ± ∞ ¹ 112.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasLinkWithDomainPatternLarge 16.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasLinkWithPatternAndDomainPatternLarge 112.0 ± ∞ ¹ 112.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
ConcurrentHasLinkWithMatching 736.0 ± ∞ ¹ 736.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
geomean ⁴ -2.51% ➡️ ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean
│ base-bench.txt │ pr-bench.txt │
│ allocs/op │ allocs/op vs base Diff │
CachedRaw 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedBasicModel 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModel 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelSmall 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelMedium 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelLarge 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithResourceRoles 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithDomains 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedABACModel 18.00 ± ∞ ¹ 18.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedKeyMatchModel 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelWithDeny 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedPriorityModel 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedWithEnforceContext 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
CachedRBACModelMediumParallel 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicySmall 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicyMedium 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasPolicyLarge 5.000 ± ∞ ¹ 5.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicySmall 6.000 ± ∞ ¹ 6.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicyMedium 7.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
AddPolicyLarge 9.000 ± ∞ ¹ 9.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RemovePolicySmall 7.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RemovePolicyMedium 7.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RemovePolicyLarge 8.000 ± ∞ ¹ 8.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
Raw 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
BasicModel 18.00 ± ∞ ¹ 18.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModel 36.00 ± ∞ ¹ 36.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelSizes/small 481.0 ± ∞ ¹ 481.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelSizes/medium 4.829k ± ∞ ¹ 4.829k ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelSizes/large 48.23k ± ∞ ¹ 48.23k ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
RBACModelSmall 616.0 ± ∞ ¹ 616.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelMedium 6.016k ± ∞ ¹ 6.016k ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelLarge 60.07k ± ∞ ¹ 60.07k ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
RBACModelWithResourceRoles 28.00 ± ∞ ¹ 28.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelWithDomains 26.00 ± ∞ ¹ 26.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
ABACModel 17.00 ± ∞ ¹ 17.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
ABACRuleModel 34.08k ± ∞ ¹ 34.08k ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
KeyMatchModel 38.00 ± ∞ ¹ 22.00 ± ∞ ¹ ~ (p=1.000 n=1) ³ -42.11% 🚀
RBACModelWithDeny 50.00 ± ∞ ¹ 50.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
PriorityModel 23.00 ± ∞ ¹ 23.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RBACModelWithDomainPatternLarge 73.00 ± ∞ ¹ 39.00 ± ∞ ¹ ~ (p=1.000 n=1) ³ -46.58% 🚀
RoleManagerSmall 100.0 ± ∞ ¹ 100.0 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RoleManagerMedium 1.744k ± ∞ ¹ 1.744k ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
RoleManagerLarge 19.74k ± ∞ ¹ 19.74k ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
BuildRoleLinksWithPatternLarge 3.560M ± ∞ ¹ 3.560M ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
BuildRoleLinksWithDomainPatternLarge 120.2k ± ∞ ¹ 120.2k ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
BuildRoleLinksWithPatternAndDomainPatternLarge 3.637M ± ∞ ¹ 3.637M ± ∞ ¹ ~ (p=1.000 n=1) ³ +0.00% ➡️
HasLinkWithPatternLarge 9.000 ± ∞ ¹ 9.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasLinkWithDomainPatternLarge 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
HasLinkWithPatternAndDomainPatternLarge 9.000 ± ∞ ¹ 9.000 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
ConcurrentHasLinkWithMatching 11.00 ± ∞ ¹ 11.00 ± ∞ ¹ ~ (p=1.000 n=1) ² +0.00% ➡️
geomean ⁴ -2.32% ➡️ ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean
```
<sub>🤖 This comment will be automatically updated with the latest benchmark results.</sub>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For additional commands, e-mail: commits-help@casbin.apache.org
Re: [PR] perf: pre-compile regex in RegexMatch for better performance [casbin]
Posted by "nodece (via GitHub)" <gi...@apache.org>.
nodece merged PR #1721:
URL: https://github.com/apache/casbin/pull/1721
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@casbin.apache.org
For additional commands, e-mail: commits-help@casbin.apache.org