Benchmarks
Les frais de mise en application de la politique sont comparés dans model_b_test.go. Le lit de test est :
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Processeur(s) logique(s)
Le résultat du benchmarking de va test -bench=. -benchmem est comme suit (op = un appel Enforce() , ms = milliseconde, KB = kilo octets):
| Cas de test | Taille de la règle | Temps au dessus (ms/op) | Memory overhead (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 les rôles de ressource | 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 |
| RESTANT | 5 règles (3 utilisateurs) | 0.045398 | 91.774 |
| Refuser la substitution | 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 |
Les frais d'exécution de la politique de Casbin CPP sont comparés dans le répertoire tests/benchmarks à l'aide de l'outil de benchmarking de Google. Le lit de test pour ces repères est :
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Here is the benchmarking result of executing casbin_benchmark target built in Release configuration (op = an enforce() call, ms = millisecond):
| Cas de test | Taille de la règle | Time overhead (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 les rôles de ressource | 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 |
| RESTANT | 5 règles (3 utilisateurs) | NA |
| Refuser la substitution | 6 règles (2 utilisateurs, 1 rôle) | 0.0246 |
| Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.035 |
Lua Casbin's overhead of policy enforcement est comparé dans bench.lua. Le lit testé était une VM Ubuntu avec le CPU:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Le résultat de benchmarking de luajit bench.lua est le suivant (op = un appel enforce() , ms = millisecond):
| Cas de test | Taille de la règle | Temps au dessus (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 les rôles de ressource | 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 |
| RESTANT | 5 règles (3 utilisateurs) | 0.1085 |
| Refuser la substitution | 6 règles (2 utilisateurs, 1 rôle) | 0.1934 |
| Priorité | 9 règles (2 utilisateurs, 2 rôles) | 0.1437 |