当前位置: 首页 > 文档资料 > Casbin 中文文档 >

基准测试

优质
小牛编辑
129浏览
2023-12-01
GoCPPLua (JIT)

策略执行的负载在model_b_test.go中进行基准测试。 测试是:

英特尔 酷睿 i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 核, 8 处理器

go test -bench= -benchmem 的测试结果如下 (op = 一次 Enforce() 调用, ms = 毫秒, KB = 千字节):

测试用例规则大小时间开销 (ms/op)内存开销 (KB)
ACL2 规则 (2用户)0.0154935.649
RBAC5条规则 (2用户,1个角色)0.0217387.522
RBAC (小型)1100条规则 (1000用户,100个角色)0.16430980.620
RBAC (中型)11000条规则 (10000用户,1000个角色)2.258262765.152
RBAC (大型)110000条规则 (100000用户,10000个角色)23.9167767606
具有资源角色的RBAC6条规则 (2用户,2个角色)0.0211467.906
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)0.03269610.755
ABAC0 规则 (0用户)0.0075102.328
RESTful5 规则 (3用户)0.04539891.774
拒绝改写6条规则 (2用户,1个角色)0.0232818.370
优先级9条规则 (2用户,2个角色)0.0163895.313

Casbin CPP 的策略执行测试是在 tests/benchmarks 中, 使用 Google's benchmarking tool 完成的 这些基准的测试结果是:

Apple M1 (2020) SOC @ 3.2 GHz, 8 核, 16 threads

这里是在 Release 配置中执行 casbin_facility 目标的基准结果(op = 一个 enforce() 调用, ns =纳秒):

测试用例规则大小时间开销 (ns/op)
ACL2 规则 (2用户)95.6
RBAC5条规则 (2用户,1个角色)95.6
RBAC (小型)1100条规则 (1000用户,100个角色)110
RBAC (中型)11000条规则 (10000用户,1000个角色)119
RBAC (大型)110000条规则 (100000用户,10000个角色)90.3217
具有资源角色的RBAC6条规则 (2用户,2个角色)96.0
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)134
ABAC0 规则 (0用户)NA
RESTful5 规则 (3用户)NA
Deny-override6条规则 (2用户,1个角色)96.2
优先级9条规则 (2用户,2个角色)96.1

Lua Casbin的 策略执行的测试是在 ben.lua 中进行的。 测试台是 Ubuntu VM ,CPU型号为

AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 核, 12 Threads

luajit bey.lua 的基准结果如下(op = 一个 enforce() 调用, ms = 毫秒):

测试用例规则大小时间开销 (ms/op)
ACL2 规则 (2用户)0.0533
RBAC5条规则 (2用户,1个角色)0.0972
RBAC (小型)1100条规则 (1000用户,100个角色)0.8598
RBAC (中型)11000条规则 (10000用户,1000个角色)8.6848
RBAC (大型)110000条规则 (100000用户,10000个角色)90.3217
具有资源角色的RBAC6条规则 (2用户,2个角色)0.1124
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)0.1978
ABAC0 规则 (0用户)0.0305
RESTful5 规则 (3用户)0.1085
拒绝改写6条规则 (2用户,1个角色)0.1934
优先级9条规则 (2用户,2个角色)0.1437
← 多线程性能优化 →