Benchmarks
- Go
- Python
- C++
- Lua (JIT)
Chi phí phía trên của việc thực thi chính sách đã được đánh giá chuẩn trong model_b_test.go. Cấu hình môi trường thử nghiệm như sau:
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical Processor(s)
Sau đây là kết quả đánh giá chuẩn thu được bằng cách chạy go test -bench=. -benchmem
(op = một lệnh gọi Enforce()
, ms = mili giây, KB = kilobytes):
Trường hợp kiểm thử | Kích thước quy tắc | Chi phí thời gian (ms/op) | Chi phí bộ nhớ (KB) |
---|---|---|---|
ACL | 2 quy tắc (2 người dùng) | 0.015493 | 5.649 |
RBAC | 5 quy tắc (2 người dùng, 1 vai trò) | 0.021738 | 7.522 |
RBAC (nhỏ) | 1100 quy tắc (1000 người dùng, 100 vai trò) | 0,164309 | 80,620 |
RBAC (trung bình) | 11000 quy tắc (10000 người dùng, 1000 vai trò) | 2,258262 | 765,152 |
RBAC (lớn) | 110000 quy tắc (100000 người dùng, 10000 vai trò) | 23,916776 | 7.606 |
RBAC với vai trò tài nguyên | 6 quy tắc (2 người dùng, 2 vai trò) | 0,021146 | 7,906 |
RBAC với miền/người thuê | 6 quy tắc (2 người dùng, 1 vai trò, 2 miền) | 0,032696 | 10,755 |
ABAC | Quy tắc 0 (0 người dùng) | 0,007510 | 2,328 |
RESTful | 5 quy tắc (3 người dùng) | 0,045398 | 91,774 |
Từ chối-ghi đè | 6 quy tắc (2 người dùng, 1 vai trò) | 0,023281 | 8.370 |
Ưu tiên | 9 quy tắc (2 người dùng, 2 vai trò) | 0.016389 | 5.313 |
Chi phí quản lý chính sách trong Pycasbin đã được đánh giá hiệu suất trong thư mục tests/benchmarks
. Cấu hình môi trường thử nghiệm như sau:
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
Dưới đây là kết quả đánh giá hiệu suất thu được từ việc thực thi casbin_benchmark
(op = một lệnh gọi enforce()
, ms = mili giây):
Trường hợp kiểm thử | Kích thước quy tắc | Độ trễ thời gian (ms/op) |
---|---|---|
ACL | 2 quy tắc (2 người dùng) | 0.067691 |
RBAC | 5 quy tắc (2 người dùng, 1 vai trò) | 0.080045 |
RBAC (nhỏ) | 1100 quy tắc (1000 người dùng, 100 vai trò) | 0.853590 |
RBAC (trung bình) | 11000 quy tắc (10000 người dùng, 1000 vai trò) | 6,986668 |
RBAC (lớn) | 110000 quy tắc (100000 người dùng, 10000 vai trò) | 77,922851 |
RBAC với vai trò tài nguyên | 6 quy tắc (2 người dùng, 2 vai trò) | 0,106090 |
RBAC với miền/đối tác | 6 quy tắc (2 người dùng, 1 vai trò, 2 miền) | 0.103628 |
ABAC | 0 quy tắc (0 người dùng) | 0.053213 |
RESTful | 5 quy tắc (3 người dùng) | NA |
Từ chối-thay thế | 6 quy tắc (2 người dùng, 1 vai trò) | NA |
Ưu tiên | 9 quy tắc (2 người dùng, 2 vai trò) | 0.084684 |
Chi phí quản lý chính sách trong Casbin CPP đã được đánh giá hiệu suất trong thư mục tests/benchmarks
sử dụng công cụ đánh giá hiệu suất của Google. Cấu hình môi trường thử nghiệm như sau:
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
Dưới đây là kết quả đánh giá hiệu suất thu được từ việc thực thi mục tiêu casbin_benchmark
được xây dựng trong cấu hình Release
(op = lệnh gọi enforce()
, ms = mili giây):
Trường hợp kiểm thử | Kích thước quy tắc | Chi phí thời gian (ms/op) |
---|---|---|
ACL | 2 quy tắc (2 người dùng) | 0.0195 |
RBAC | 5 quy tắc (2 người dùng, 1 vai trò) | 0.0288 |
RBAC (nhỏ) | 1100 quy tắc (1000 người dùng, 100 vai trò) | 0.300 |
RBAC (vừa) | 11000 quy tắc (10000 người dùng, 1000 vai trò) | 2.113 |
RBAC (lớn) | 110000 quy tắc (100000 người dùng, 10000 vai trò) | 21.450 |
RBAC với vai trò tài nguyên | 6 quy tắc (2 người dùng, 2 vai trò) | 0.03 |
RBAC với miền/đối tượng thuê | 6 quy tắc (2 người dùng, 1 vai trò, 2 miền) | 0.041 |
ABAC | Quy tắc 0 (0 người dùng) | NA |
RESTful | 5 quy tắc (3 người dùng) | NA |
Deny-override | 6 quy tắc (2 người dùng, 1 vai trò) | 0.0246 |
Ưu tiên | 9 quy tắc (2 người dùng, 2 vai trò) | 0,035 |
Chi phí chung của việc thực thi chính sách trong Lua Casbin đã được đánh giá hiệu năng trong bench.lua. Cấu hình môi trường thử nghiệm như sau:
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
Dưới đây là kết quả đánh giá hiệu năng thu được bằng cách chạy luajit bench.lua
(op = một lệnh gọi enforce()
, ms = mili giây):
Trường hợp kiểm thử | Kích thước quy tắc | Chi phí thời gian (ms/op) |
---|---|---|
ACL | 2 quy tắc (2 người dùng) | 0.0533 |
RBAC | 5 quy tắc (2 người dùng, 1 vai trò) | 0.0972 |
RBAC (nhỏ) | 1100 quy tắc (1000 người dùng, 100 vai trò) | 0.8598 |
RBAC (vừa) | 11000 quy tắc (10000 người dùng, 1000 vai trò) | 8,6848 |
RBAC (lớn) | 110.000 quy tắc (100.000 người dùng, 10.000 vai trò) | 90,3217 |
RBAC với vai trò tài nguyên | 6 quy tắc (2 người dùng, 2 vai trò) | 0,1124 |
RBAC với miền/đối tác | 6 quy tắc (2 người dùng, 1 vai trò, 2 miền) | 0,1978 |
ABAC | Quy tắc 0 (0 người dùng) | 0,0305 |
RESTful | 5 quy tắc (3 người dùng) | 0,1085 |
Từ chối-ghi đè | 6 quy tắc (2 người dùng, 1 vai trò) | 0,1934 |
Ưu tiên | 9 quy tắc (2 người dùng, 2 vai trò) | 0,1437 |
Giám sát điểm chuẩn
Trong trang web nhúng bên dưới, bạn có thể thấy những thay đổi về hiệu suất của Casbin cho mỗi commit.
Bạn cũng có thể truy cập trực tiếp tại: https://v1.casbin.org/casbin/benchmark-monitoring