Benchmarks
- Go
- Python
- C++
- Lua (JIT)
Der Overhead der Richtliniendurchsetzung wurde in model_b_test.go benchmarked. Die Testbed-Konfiguration ist wie folgt:
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
Folgend sind die Benchmarking-Ergebnisse, die durch das Ausführen von go test -bench=.
erzielt wurden -benchmem (op = ein Enforce()
Aufruf, ms = Millisekunde, KB = Kilobyte):
Testfall | Regelgröße | Zeit-Overhead (ms/op) | Speicher-Overhead (KB) |
---|---|---|---|
ACL | 2 Regeln (2 Benutzer) | 0.015493 | 5.649 |
RBAC | 5 Regeln (2 Benutzer, 1 Rolle) | 0.021738 | 7.522 |
RBAC (klein) | 1100 Regeln (1000 Benutzer, 100 Rollen) | 0.164309 | 80.620 |
RBAC (mittel) | 11000 Regeln (10000 Benutzer, 1000 Rollen) | 2.258262 | 765.152 |
RBAC (groß) | 110000 Regeln (100000 Benutzer, 10000 Rollen) | 23.916776 | 7,606 |
RBAC mit Ressourcenrollen | 6 Regeln (2 Benutzer, 2 Rollen) | 0.021146 | 7.906 |
RBAC mit Domänen/Mandanten | 6 Regeln (2 Benutzer, 1 Rolle, 2 Domänen) | 0.032696 | 10.755 |
ABAC | 0 Regel (0 Benutzer) | 0.007510 | 2.328 |
RESTful | 5 Regeln (3 Benutzer) | 0.045398 | 91.774 |
Deny-override | 6 Regeln (2 Benutzer, 1 Rolle) | 0.023281 | 8.370 |
Priorität | 9 Regeln (2 Benutzer, 2 Rollen) | 0.016389 | 5.313 |
Der Overhead der Richtliniendurchsetzung in Pycasbin wurde im Verzeichnis tests/benchmarks
benchmarked. Die Testbett-Konfiguration ist wie folgt:
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
Hier sind die Benchmarking-Ergebnisse, die durch die Ausführung von casbin_benchmark
erhalten wurden (op = ein enforce()
Aufruf, ms = Millisekunde):
Testfall | Regelgröße | Zeit-Overhead (ms/op) |
---|---|---|
ACL | 2 Regeln (2 Benutzer) | 0.067691 |
RBAC | 5 Regeln (2 Benutzer, 1 Rolle) | 0.080045 |
RBAC (klein) | 1100 Regeln (1000 Benutzer, 100 Rollen) | 0.853590 |
RBAC (mittel) | 11000 Regeln (10000 Benutzer, 1000 Rollen) | 6.986668 |
RBAC (groß) | 110000 Regeln (100000 Benutzer, 10000 Rollen) | 77.922851 |
RBAC mit Ressourcenrollen | 6 Regeln (2 Benutzer, 2 Rollen) | 0.106090 |
RBAC mit Domänen/Mandanten | 6 Regeln (2 Benutzer, 1 Rolle, 2 Domänen) | 0.103628 |
ABAC | 0 Regel (0 Benutzer) | 0.053213 |
RESTful | 5 Regeln (3 Benutzer) | NA |
Deny-override | 6 Regeln (2 Benutzer, 1 Rolle) | NA |
Priorität | 9 Regeln (2 Benutzer, 2 Rollen) | 0.084684 |
Die Overhead-Kosten der Richtliniendurchsetzung in Casbin CPP wurden im Verzeichnis tests/benchmarks
mit dem Benchmarking-Tool von Google gemessen. Die Testbed-Konfiguration ist wie folgt:
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Hier sind die Benchmarking-Ergebnisse, die durch Ausführen des im Release
-Konfiguration erstellten casbin_benchmark
-Ziels erhalten wurden (op = ein enforce()
-Aufruf, ms = Millisekunde):
Testfall | Regelgröße | Zeit-Overhead (ms/op) |
---|---|---|
ACL | 2 Regeln (2 Benutzer) | 0.0195 |
RBAC | 5 Regeln (2 Benutzer, 1 Rolle) | 0.0288 |
RBAC (klein) | 1100 Regeln (1000 Benutzer, 100 Rollen) | 0.300 |
RBAC (mittel) | 11000 Regeln (10000 Benutzer, 1000 Rollen) | 2.113 |
RBAC (groß) | 110000 Regeln (100000 Benutzer, 10000 Rollen) | 21.450 |
RBAC mit Ressourcenrollen | 6 Regeln (2 Benutzer, 2 Rollen) | 0.03 |
RBAC mit Domänen/Mandanten | 6 Regeln (2 Benutzer, 1 Rolle, 2 Domänen) | 0.041 |
ABAC | 0 Regel (0 Benutzer) | NA |
RESTful | 5 Regeln (3 Benutzer) | NA |
Deny-override | 6 Regeln (2 Benutzer, 1 Rolle) | 0.0246 |
Priorität | 9 Regeln (2 Benutzer, 2 Rollen) | 0.035 |
Der Overhead der Richtliniendurchsetzung in Lua Casbin wurde in bench.lua benchmarked. Die Testbed-Konfiguration ist wie folgt:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Hier sind die Benchmarking-Ergebnisse, die durch das Ausführen von luajit bench.lua
erhalten wurden (op = ein enforce()
Aufruf, ms = Millisekunde):
Testfall | Regelgröße | Zeit-Overhead (ms/op) |
---|---|---|
ACL | 2 Regeln (2 Benutzer) | 0.0533 |
RBAC | 5 Regeln (2 Benutzer, 1 Rolle) | 0.0972 |
RBAC (klein) | 1100 Regeln (1000 Benutzer, 100 Rollen) | 0.8598 |
RBAC (mittel) | 11000 Regeln (10000 Benutzer, 1000 Rollen) | 8.6848 |
RBAC (groß) | 110000 Regeln (100000 Benutzer, 10000 Rollen) | 90.3217 |
RBAC mit Ressourcenrollen | 6 Regeln (2 Benutzer, 2 Rollen) | 0.1124 |
RBAC mit Domänen/Mandanten | 6 Regeln (2 Benutzer, 1 Rolle, 2 Domänen) | 0.1978 |
ABAC | 0 Regel (0 Benutzer) | 0.0305 |
RESTful | 5 Regeln (3 Benutzer) | 0.1085 |
Deny-override | 6 Regeln (2 Benutzer, 1 Rolle) | 0.1934 |
Priorität | 9 Regeln (2 Benutzer, 2 Rollen) | 0.1437 |
Benchmark-Überwachung
In der unten eingebetteten Webseite können Sie die Leistungsänderungen von Casbin für jeden Commit sehen.
Sie können es auch direkt unter folgender Adresse aufrufen: https://v1.casbin.org/casbin/benchmark-monitoring