Benchmarks
- Go
- Python
- C++
- Lua (JIT)
Overhead penerapan kebijakan telah diukur dengan patokan di model_b_test.go. Konfigurasi tempat pengujian adalah sebagai berikut:
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
Berikut adalah hasil pengukuran yang diperoleh dengan menjalankan go test -bench=. -benchmem
(op = panggilan Enforce()
, ms = milidetik, KB = kilobyte):
Kasus uji | Ukuran aturan | Overhead waktu (ms/op) | Overhead memori (KB) |
---|---|---|---|
ACL | 2 aturan (2 pengguna) | 0,015493 | 5,649 |
RBAC | 5 aturan (2 pengguna, 1 peran) | 0,021738 | 7,522 |
RBAC (kecil) | 1100 aturan (1000 pengguna, 100 peran) | 0,164309 | 80,620 |
RBAC (sedang) | 11000 aturan (10000 pengguna, 1000 peran) | 2,258262 | 765,152 |
RBAC (besar) | 110000 aturan (100000 pengguna, 10000 peran) | 23,916776 | 7.606 |
RBAC dengan peran sumber daya | 6 aturan (2 pengguna, 2 peran) | 0,021146 | 7,906 |
RBAC dengan domain/penyewa | 6 aturan (2 pengguna, 1 peran, 2 domain) | 0,032696 | 10,755 |
ABAC | 0 aturan (0 pengguna) | 0,007510 | 2,328 |
RESTful | 5 aturan (3 pengguna) | 0,045398 | 91,774 |
Tolak-override | 6 aturan (2 pengguna, 1 peran) | 0,023281 | 8.370 |
Prioritas | 9 aturan (2 pengguna, 2 peran) | 0.016389 | 5.313 |
Overhead dari penerapan kebijakan di Pycasbin telah diukur dalam direktori tests/benchmarks
. Konfigurasi testbed adalah sebagai berikut:
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
Berikut adalah hasil pengukuran yang diperoleh dari menjalankan casbin_benchmark
(op = panggilan enforce()
, ms = milidetik):
Kasus uji | Ukuran aturan | Overhead waktu (ms/op) |
---|---|---|
ACL | 2 aturan (2 pengguna) | 0,067691 |
RBAC | 5 aturan (2 pengguna, 1 peran) | 0,080045 |
RBAC (kecil) | 1100 aturan (1000 pengguna, 100 peran) | 0,853590 |
RBAC (sedang) | 11000 aturan (10000 pengguna, 1000 peran) | 6,986668 |
RBAC (besar) | 110000 aturan (100000 pengguna, 10000 peran) | 77,922851 |
RBAC dengan peran sumber daya | 6 aturan (2 pengguna, 2 peran) | 0,106090 |
RBAC dengan domain/penyewa | 6 aturan (2 pengguna, 1 peran, 2 domain) | 0,103628 |
ABAC | 0 aturan (0 pengguna) | 0,053213 |
RESTful | 5 aturan (3 pengguna) | NA |
Tolak-override | 6 aturan (2 pengguna, 1 peran) | NA |
Prioritas | 9 aturan (2 pengguna, 2 peran) | 0,084684 |
Overhead pada penerapan kebijakan di Casbin CPP telah diukur dengan benchmark di direktori tests/benchmarks
menggunakan alat benchmarking Google. Konfigurasi testbed adalah sebagai berikut:
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Berikut adalah hasil benchmarking yang diperoleh dari menjalankan target casbin_benchmark
yang dibangun dalam konfigurasi Release
(op = panggilan enforce()
, ms = milidetik):
Kasus uji | Ukuran aturan | Overhead waktu (ms/op) |
---|---|---|
ACL | 2 aturan (2 pengguna) | 0,0195 |
RBAC | 5 aturan (2 pengguna, 1 peran) | 0,0288 |
RBAC (kecil) | 1100 aturan (1000 pengguna, 100 peran) | 0,300 |
RBAC (sedang) | 11000 aturan (10000 pengguna, 1000 peran) | 2.113 |
RBAC (besar) | 110000 aturan (100000 pengguna, 10000 peran) | 21.450 |
RBAC dengan peran sumber daya | 6 aturan (2 pengguna, 2 peran) | 0.03 |
RBAC dengan domain/penyewa | 6 aturan (2 pengguna, 1 peran, 2 domain) | 0,041 |
ABAC | 0 aturan (0 pengguna) | NA |
RESTful | 5 aturan (3 pengguna) | NA |
Tolak-override | 6 aturan (2 pengguna, 1 peran) | 0,0246 |
Prioritas | 9 aturan (2 pengguna, 2 peran) | 0,035 |
Overhead penerapan kebijakan di Lua Casbin telah diukur dalam bench.lua. Konfigurasi tempat uji adalah sebagai berikut:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Berikut adalah hasil pengukuran yang diperoleh dengan menjalankan luajit bench.lua
(op = panggilan enforce()
, ms = milidetik):
Kasus uji | Ukuran aturan | Overhead waktu (ms/op) |
---|---|---|
ACL | 2 aturan (2 pengguna) | 0,0533 |
RBAC | 5 aturan (2 pengguna, 1 peran) | 0,0972 |
RBAC (kecil) | 1100 aturan (1000 pengguna, 100 peran) | 0,8598 |
RBAC (sedang) | 11000 aturan (10000 pengguna, 1000 peran) | 8,6848 |
RBAC (besar) | 110.000 aturan (100.000 pengguna, 10.000 peran) | 90,3217 |
RBAC dengan peran sumber daya | 6 aturan (2 pengguna, 2 peran) | 0,1124 |
RBAC dengan domain/penyewa | 6 aturan (2 pengguna, 1 peran, 2 domain) | 0,1978 |
ABAC | 0 aturan (0 pengguna) | 0,0305 |
RESTful | 5 aturan (3 pengguna) | 0,1085 |
Tolak-timpa | 6 aturan (2 pengguna, 1 peran) | 0,1934 |
Prioritas | 9 aturan (2 pengguna, 2 peran) | 0,1437 |
Pemantauan Benchmark
Di halaman web tersemat di bawah ini, Anda dapat melihat perubahan kinerja Casbin untuk setiap komit.
Anda juga dapat langsung menjelajahinya di: https://v1.casbin.org/casbin/benchmark-monitoring