Skip to content
This repository has been archived by the owner on Jun 16, 2020. It is now read-only.

Latest commit

 

History

History

benchmarks

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Bachmarks

How to run benchmark

go test -bench .

Report

The overhead of the policy enforcement is benchmarked by eval_b_test.go. And the report was generated by running the benchmark cases on the testbed:

2 * Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz 2 Cores, 4 Threads

This tables shows the report for API IsAllowed. op means one call of IsAllowed.

Case Size Time overhead (μs/op)
One 1 policy, 1 role policy, 1 user 6.6
Tiny 10 policies, 10 role policies, 10 users/role 7.3
Small 100 policies, 100 role policies, 10 users/role 8.5
Medium 1K policies, 1K role policies, 10 users/role 8.6
Large 10K policies, 10K role policies, 10 users/role 8.7
Huge 100K policies, 100K role policies, 10 users/role 8.7
LargeExp 10K policies with resource expression, 10K role policies, 10 users/role 43.0
LargeCond 10K policies with condition, 10K role policies, 10 users/role 8.0

And below table shows the report for API GetAllGrantedPermissions. op means one call of GetAllGrantedPermissions.

Case Size Time overhead (μs/op)
LargePerm 10K policies, 10K role policies, 10 users/role 8.9