Benchmarks
- Go
- Python
- C++
- Lua (JIT)
La sobrecarga de la aplicación de políticas ha sido evaluada en model_b_test.go. La configuración del banco de pruebas es la siguiente:
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
A continuación se presentan los resultados de las pruebas de rendimiento obtenidos al ejecutar go test -bench=. -benchmem
(op = una llamada a Enforce()
, ms = milisegundo, KB = kilobytes):
Caso de prueba | Tamaño de la regla | Sobrecarga de tiempo (ms/op) | Sobrecarga de memoria (KB) |
---|---|---|---|
ACL | 2 reglas (2 usuarios) | 0.015493 | 5.649 |
RBAC | 5 reglas (2 usuarios, 1 rol) | 0.021738 | 7.522 |
RBAC (pequeño) | 1100 reglas (1000 usuarios, 100 roles) | 0.164309 | 80.620 |
RBAC (mediano) | 11000 reglas (10000 usuarios, 1000 roles) | 2.258262 | 765.152 |
RBAC (grande) | 110000 reglas (100000 usuarios, 10000 roles) | 23.916776 | 7,606 |
RBAC con roles de recursos | 6 reglas (2 usuarios, 2 roles) | 0.021146 | 7.906 |
RBAC con dominios/inquilinos | 6 reglas (2 usuarios, 1 rol, 2 dominios) | 0.032696 | 10.755 |
ABAC | 0 regla (0 usuario) | 0.007510 | 2.328 |
RESTful | 5 reglas (3 usuarios) | 0.045398 | 91.774 |
Denegación con prioridad | 6 reglas (2 usuarios, 1 rol) | 0.023281 | 8.370 |
Prioridad | 9 reglas (2 usuarios, 2 roles) | 0.016389 | 5.313 |
La sobrecarga de la aplicación de políticas en Pycasbin ha sido evaluada en el directorio tests/benchmarks
. La configuración del banco de pruebas es la siguiente:
Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz (Runned by Github actions)
platform linux -- Python 3.11.4, pytest-7.0.1, pluggy-1.2.0
Aquí están los resultados de las pruebas de rendimiento obtenidos al ejecutar casbin_benchmark
(op = una llamada a enforce()
, ms = milisegundo):
Caso de prueba | Tamaño de la regla | Sobrecarga de tiempo (ms/op) |
---|---|---|
ACL | 2 reglas (2 usuarios) | 0.067691 |
RBAC | 5 reglas (2 usuarios, 1 rol) | 0.080045 |
RBAC (pequeño) | 1100 reglas (1000 usuarios, 100 roles) | 0.853590 |
RBAC (mediano) | 11000 reglas (10000 usuarios, 1000 roles) | 6.986668 |
RBAC (grande) | 110000 reglas (100000 usuarios, 10000 roles) | 77.922851 |
RBAC con roles de recursos | 6 reglas (2 usuarios, 2 roles) | 0.106090 |
RBAC con dominios/inquilinos | 6 reglas (2 usuarios, 1 rol, 2 dominios) | 0.103628 |
ABAC | 0 regla (0 usuario) | 0.053213 |
RESTful | 5 reglas (3 usuarios) | NA |
Denegación por prioridad | 6 reglas (2 usuarios, 1 rol) | NA |
Prioridad | 9 reglas (2 usuarios, 2 roles) | 0.084684 |
La sobrecarga de la aplicación de políticas en Casbin CPP ha sido evaluada en el directorio tests/benchmarks
utilizando la herramienta de evaluación de Google. La configuración del banco de pruebas es la siguiente:
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Aquí están los resultados de las pruebas de rendimiento obtenidos al ejecutar el objetivo casbin_benchmark
construido en la configuración Release
(op = una llamada a enforce()
, ms = milisegundo):
Caso de prueba | Tamaño de la regla | Sobrecarga de tiempo (ms/op) |
---|---|---|
ACL | 2 reglas (2 usuarios) | 0.0195 |
RBAC | 5 reglas (2 usuarios, 1 rol) | 0.0288 |
RBAC (pequeño) | 1100 reglas (1000 usuarios, 100 roles) | 0.300 |
RBAC (mediano) | 11000 reglas (10000 usuarios, 1000 roles) | 2.113 |
RBAC (grande) | 110000 reglas (100000 usuarios, 10000 roles) | 21.450 |
RBAC con roles de recurso | 6 reglas (2 usuarios, 2 roles) | 0.03 |
RBAC con dominios/tenants | 6 reglas (2 usuarios, 1 rol, 2 dominios) | 0.041 |
ABAC | 0 regla (0 usuario) | NA |
RESTful | 5 reglas (3 usuarios) | NA |
Denegación por prioridad | 6 reglas (2 usuarios, 1 rol) | 0.0246 |
Prioridad | 9 reglas (2 usuarios, 2 roles) | 0.035 |
The overhead of policy enforcement in Lua Casbin has been benchmarked in bench.lua. The testbed configuration is as follows:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Here are the benchmarking results obtained by running luajit bench.lua
(op = an enforce()
call, ms = millisecond):
Caso de prueba | Tamaño de la regla | Sobrecarga de tiempo (ms/op) |
---|---|---|
ACL | 2 reglas (2 usuarios) | 0.0533 |
RBAC | 5 reglas (2 usuarios, 1 rol) | 0.0972 |
RBAC (pequeño) | 1100 reglas (1000 usuarios, 100 roles) | 0.8598 |
RBAC (mediano) | 11000 reglas (10000 usuarios, 1000 roles) | 8.6848 |
RBAC (grande) | 110000 reglas (100000 usuarios, 10000 roles) | 90.3217 |
RBAC con roles de recurso | 6 reglas (2 usuarios, 2 roles) | 0.1124 |
RBAC con dominios/inquilinos | 6 reglas (2 usuarios, 1 rol, 2 dominios) | 0.1978 |
ABAC | 0 regla (0 usuario) | 0.0305 |
RESTful | 5 reglas (3 usuarios) | 0.1085 |
Denegación por prioridad | 6 reglas (2 usuarios, 1 rol) | 0.1934 |
Prioridad | 9 reglas (2 usuarios, 2 roles) | 0.1437 |
Monitoreo de referencia
En la página web incrustada a continuación, puedes ver los cambios de rendimiento de Casbin para cada commit.
También puedes navegar directamente en: https://v1.casbin.org/casbin/benchmark-monitoring