Benchmarks
- Go
- Python
- C++
- Lua (JIT)
La surcharge de l'application des politiques a été évaluée dans model_b_test.go. La configuration de la plateforme de test est la suivante :
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
Voici les résultats de l'évaluation obtenus en exécutant go test -bench=.
-benchmem(op = un appel
Enforce()``, ms = milliseconde, KB = kilo-octets) :
Cas de test | Taille de la règle | Surcharge temporelle (ms/op) | Surcharge de la mémoire (KB) |
---|---|---|---|
ACL | 2 règles (2 utilisateurs) | 0.015493 | 5.649 |
RBAC | 5 règles (2 utilisateurs, 1 rôle) | 0.021738 | 7.522 |
RBAC (petit) | 1100 règles (1000 utilisateurs, 100 rôles) | 0.164309 | 80.620 |
RBAC (moyen) | 11000 règles (10000 utilisateurs, 1000 rôles) | 2.258262 | 765.152 |
RBAC (grand) | 110000 règles (100000 utilisateurs, 10000 rôles) | 23.916776 | 7,606 |
RBAC avec rôles de ressources | 6 règles (2 utilisateurs, 2 rôles) | 0.021146 | 7.906 |
RBAC avec domaines/locataires | 6 règles (2 utilisateurs, 1 rôle, 2 domaines) | 0.032696 | 10.755 |
ABAC | 0 règle (0 utilisateur) | 0.007510 | 2.328 |
RESTful | 5 règles (3 utilisateurs) | 0.045398 | 91.774 |
Refus-override | 6 règles (2 utilisateurs, 1 rôle) | 0.023281 | 8.370 |
Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.016389 | 5.313 |
La surcharge de l'application des politiques dans Pycasbin a été évaluée dans le répertoire tests/benchmarks
. La configuration du banc d'essai est la suivante :
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
Voici les résultats de l'évaluation obtenus en exécutant casbin_benchmark
(op = un appel enforce()
, ms = milliseconde) :
Cas de test | Taille de la règle | Surcharge temporelle (ms/op) |
---|---|---|
ACL | 2 règles (2 utilisateurs) | 0.067691 |
RBAC | 5 règles (2 utilisateurs, 1 rôle) | 0.080045 |
RBAC (petit) | 1100 règles (1000 utilisateurs, 100 rôles) | 0.853590 |
RBAC (moyen) | 11000 règles (10000 utilisateurs, 1000 rôles) | 6.986668 |
RBAC (grand) | 110000 règles (100000 utilisateurs, 10000 rôles) | 77.922851 |
RBAC avec rôles de ressources | 6 règles (2 utilisateurs, 2 rôles) | 0.106090 |
RBAC avec domaines/locataires | 6 règles (2 utilisateurs, 1 rôle, 2 domaines) | 0.103628 |
ABAC | 0 règle (0 utilisateur) | 0.053213 |
RESTful | 5 règles (3 utilisateurs) | NA |
Refus-override | 6 règles (2 utilisateurs, 1 rôle) | NA |
Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.084684 |
Le surcoût de l'application des politiques dans Casbin CPP a été évalué dans le répertoire tests/benchmarks
en utilisant l'outil de benchmarking de Google. La configuration du banc d'essai est la suivante :
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Voici les résultats de benchmarking obtenus en exécutant la cible casbin_benchmark
construite dans la configuration Release
(op = un appel enforce()
, ms = milliseconde) :
Cas de test | Taille de la règle | Surcoût temporel (ms/op) |
---|---|---|
ACL | 2 règles (2 utilisateurs) | 0.0195 |
RBAC | 5 règles (2 utilisateurs, 1 rôle) | 0.0288 |
RBAC (petit) | 1100 règles (1000 utilisateurs, 100 rôles) | 0.300 |
RBAC (moyen) | 11000 règles (10000 utilisateurs, 1000 rôles) | 2.113 |
RBAC (grand) | 110000 règles (100000 utilisateurs, 10000 rôles) | 21.450 |
RBAC avec rôles de ressources | 6 règles (2 utilisateurs, 2 rôles) | 0.03 |
RBAC avec domaines/locataires | 6 règles (2 utilisateurs, 1 rôle, 2 domaines) | 0.041 |
ABAC | 0 règle (0 utilisateur) | NA |
RESTful | 5 règles (3 utilisateurs) | NA |
Deny-override | 6 règles (2 utilisateurs, 1 rôle) | 0.0246 |
Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.035 |
Le surcoût de l'application des politiques dans Lua Casbin a été évalué dans bench.lua. La configuration du banc d'essai est la suivante :
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Voici les résultats de l'évaluation obtenus en exécutant luajit bench.lua
(op = un appel enforce()
, ms = milliseconde) :
Cas de test | Taille de la règle | Surcoût temporel (ms/op) |
---|---|---|
ACL | 2 règles (2 utilisateurs) | 0.0533 |
RBAC | 5 règles (2 utilisateurs, 1 rôle) | 0.0972 |
RBAC (petit) | 1100 règles (1000 utilisateurs, 100 rôles) | 0.8598 |
RBAC (moyen) | 11000 règles (10000 utilisateurs, 1000 rôles) | 8.6848 |
RBAC (grand) | 110000 règles (100000 utilisateurs, 10000 rôles) | 90.3217 |
RBAC avec des rôles de ressources | 6 règles (2 utilisateurs, 2 rôles) | 0.1124 |
RBAC avec domaines/locataires | 6 règles (2 utilisateurs, 1 rôle, 2 domaines) | 0.1978 |
ABAC | 0 règle (0 utilisateur) | 0.0305 |
RESTful | 5 règles (3 utilisateurs) | 0.1085 |
Refus-override | 6 règles (2 utilisateurs, 1 rôle) | 0.1934 |
Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.1437 |
Surveillance des performances
Dans la page web intégrée ci-dessous, vous pouvez voir les changements de performance de Casbin pour chaque commit.
Vous pouvez également le consulter directement à l'adresse : https://v1.casbin.org/casbin/benchmark-monitoring