Benchmarks
- Go
- Python
- C++
- Lua (JIT)
L'overhead dell'applicazione delle policy è stato misurato con un benchmark in model_b_test.go. La configurazione del banco di prova è la seguente:
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
Di seguito sono riportati i risultati del benchmarking ottenuti eseguendo go test -bench=. -benchmem
(op = una chiamata Enforce()
, ms = millisecondi, KB = kilobytes):
Caso di test | Dimensione della regola | Overhead di tempo (ms/op) | Sovraccarico di memoria (KB) |
---|---|---|---|
ACL | 2 regole (2 utenti) | 0,015493 | 5,649 |
RBAC | 5 regole (2 utenti, 1 ruolo) | 0,021738 | 7,522 |
RBAC (piccolo) | 1100 regole (1000 utenti, 100 ruoli) | 0,164309 | 80,620 |
RBAC (medio) | 11000 regole (10000 utenti, 1000 ruoli) | 2,258262 | 765,152 |
RBAC (grande) | 110000 regole (100000 utenti, 10000 ruoli) | 23,916776 | 7.606 |
RBAC con ruoli di risorsa | 6 regole (2 utenti, 2 ruoli) | 0,021146 | 7,906 |
RBAC con domini/tenant | 6 regole (2 utenti, 1 ruolo, 2 domini) | 0,032696 | 10,755 |
ABAC | 0 regola (0 utente) | 0,007510 | 2,328 |
RESTful | 5 regole (3 utenti) | 0,045398 | 91,774 |
Deny-override | 6 regole (2 utenti, 1 ruolo) | 0,023281 | 8.370 |
Priorità | 9 regole (2 utenti, 2 ruoli) | 0.016389 | 5.313 |
Il sovraccarico dell'applicazione dei criteri in Pycasbin è stato sottoposto a benchmark nella directory tests/benchmarks
. La configurazione del banco di prova è la seguente:
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
Ecco i risultati del benchmarking ottenuti eseguendo casbin_benchmark
(op = una chiamata enforce()
, ms = millisecondo):
Caso di test | Dimensione della regola | Overhead di tempo (ms/op) |
---|---|---|
ACL | 2 regole (2 utenti) | 0,067691 |
RBAC | 5 regole (2 utenti, 1 ruolo) | 0,080045 |
RBAC (piccolo) | 1100 regole (1000 utenti, 100 ruoli) | 0,853590 |
RBAC (medio) | 11000 regole (10000 utenti, 1000 ruoli) | 6,986668 |
RBAC (grande) | 110000 regole (100000 utenti, 10000 ruoli) | 77,922851 |
RBAC con ruoli di risorsa | 6 regole (2 utenti, 2 ruoli) | 0,106090 |
RBAC con domini/tenant | 6 regole (2 utenti, 1 ruolo, 2 domini) | 0,103628 |
ABAC | 0 regola (0 utente) | 0,053213 |
RESTful | 5 regole (3 utenti) | NA |
Deny-override | 6 regole (2 utenti, 1 ruolo) | NA |
Priorità | 9 regole (2 utenti, 2 ruoli) | 0,084684 |
Il sovraccarico dell'applicazione delle politiche in Casbin CPP è stato misurato nei benchmark nella directory tests/benchmarks
utilizzando lo strumento di benchmarking di Google. La configurazione del banco di prova è la seguente:
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Ecco i risultati dei benchmark ottenuti eseguendo la destinazione casbin_benchmark
costruita nella configurazione Release
(op = una chiamata enforce()
, ms = millisecondo):
Caso di test | Dimensione delle regole | Sovraccarico di tempo (ms/op) |
---|---|---|
ACL | 2 regole (2 utenti) | 0,0195 |
RBAC | 5 regole (2 utenti, 1 ruolo) | 0,0288 |
RBAC (piccolo) | 1100 regole (1000 utenti, 100 ruoli) | 0,300 |
RBAC (medio) | 11000 regole (10000 utenti, 1000 ruoli) | 2.113 |
RBAC (grande) | 110000 regole (100000 utenti, 10000 ruoli) | 21.450 |
RBAC con ruoli su risorse | 6 regole (2 utenti, 2 ruoli) | 0.03 |
RBAC con domini/tenant | 6 regole (2 utenti, 1 ruolo, 2 domini) | 0,041 |
ABAC | 0 regola (0 utente) | NA |
RESTful | 5 regole (3 utenti) | NA |
Deny-override | 6 regole (2 utenti, 1 ruolo) | 0,0246 |
Priorità | 9 regole (2 utenti, 2 ruoli) | 0,035 |
Il sovraccarico dell'applicazione dei criteri in Lua Casbin è stato misurato con un benchmark in bench.lua. La configurazione del banco di prova è la seguente:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Ecco i risultati del benchmarking ottenuti eseguendo luajit bench.lua
(op = una chiamata enforce()
, ms = millisecondo):
Caso di test | Dimensione delle regole | Sovraccarico di tempo (ms/op) |
---|---|---|
ACL | 2 regole (2 utenti) | 0,0533 |
RBAC | 5 regole (2 utenti, 1 ruolo) | 0,0972 |
RBAC (piccolo) | 1100 regole (1000 utenti, 100 ruoli) | 0,8598 |
RBAC (medio) | 11000 regole (10000 utenti, 1000 ruoli) | 8.6848 |
RBAC (grande) | 110000 regole (100000 utenti, 10000 ruoli) | 90.3217 |
RBAC con ruoli di risorsa | 6 regole (2 utenti, 2 ruoli) | 0.1124 |
RBAC con domini/tenant | 6 regole (2 utenti, 1 ruolo, 2 domini) | 0.1978 |
ABAC | 0 regola (0 utente) | 0,0305 |
RESTful | 5 regole (3 utenti) | 0,1085 |
Nega-override | 6 regole (2 utenti, 1 ruolo) | 0,1934 |
Priorità | 9 regole (2 utenti, 2 ruoli) | 0,1437 |
Monitoraggio dei benchmark
Nella pagina web incorporata qui sotto, puoi vedere le modifiche delle prestazioni di Casbin per ogni commit.
Puoi anche accedervi direttamente al seguente indirizzo: https://v1.casbin.org/casbin/benchmark-monitoring