mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
feat: add multi-threaded evaluation benchmark suite with comprehensive C# implementation (#457)
This commit introduces a complete multi-threaded evaluation benchmark suite for both Rust and C# implementations of Regorus. - Implemented engine evaluation benchmark with input and engine cloning strategies - Implemented compiled policy evaluation benchmark with input cloning and shared compiled policy strategies. - Created EngineEvaluationBenchmark.cs and CompiledPolicyEvaluationBenchmark.cs with time-based execution (3s warmup + 3s evaluation) - Implemented configuration options matching Rust implementation (useClonedEngines, useSharedPolicies parameters) - Created markdown analysis documentation with cross-platform performance analysis - C# seems to achieve 58-89% of Rust performance on test machine. Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
a53c7c8192
commit
d561531613
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"path": "/api/v1/users/123"
|
||||
},
|
||||
"user": {
|
||||
"id": "user123",
|
||||
"scope": ["read:users", "write:users"],
|
||||
"department": "engineering"
|
||||
},
|
||||
"resource": {
|
||||
"owner": "user123",
|
||||
"type": "user"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"path": "/api/v1/users"
|
||||
},
|
||||
"user": {
|
||||
"id": "user456",
|
||||
"scope": ["write:users", "admin:users"],
|
||||
"department": "engineering"
|
||||
},
|
||||
"resource": {
|
||||
"owner": "user456",
|
||||
"type": "user"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "DELETE",
|
||||
"path": "/api/v1/users/789"
|
||||
},
|
||||
"user": {
|
||||
"id": "admin123",
|
||||
"scope": ["admin:users"],
|
||||
"department": "security"
|
||||
},
|
||||
"resource": {
|
||||
"owner": "user789",
|
||||
"type": "user"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"vault": {
|
||||
"name": "mykeyvault",
|
||||
"location": "eastus",
|
||||
"enableSoftDelete": true,
|
||||
"softDeleteRetentionInDays": 90,
|
||||
"enablePurgeProtection": true,
|
||||
"networkAcls": {
|
||||
"defaultAction": "Deny",
|
||||
"bypass": "AzureServices"
|
||||
},
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"vault": {
|
||||
"name": "devkeyvault",
|
||||
"location": "westus2",
|
||||
"enableSoftDelete": true,
|
||||
"softDeleteRetentionInDays": 30,
|
||||
"enablePurgeProtection": false,
|
||||
"networkAcls": {
|
||||
"defaultAction": "Allow",
|
||||
"bypass": "AzureServices"
|
||||
},
|
||||
"tags": {
|
||||
"environment": "development"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"vault": {
|
||||
"name": "prodkeyvault",
|
||||
"location": "eastus",
|
||||
"enableSoftDelete": true,
|
||||
"softDeleteRetentionInDays": 90,
|
||||
"enablePurgeProtection": true,
|
||||
"networkAcls": {
|
||||
"defaultAction": "Deny",
|
||||
"bypass": "AzureServices"
|
||||
},
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"operation": "Microsoft.Network/networkSecurityGroups/securityRules/write",
|
||||
"rule": {
|
||||
"direction": "Inbound",
|
||||
"access": "Allow",
|
||||
"protocol": "TCP",
|
||||
"sourceAddressPrefix": "10.0.0.0/24",
|
||||
"sourcePortRange": "*",
|
||||
"destinationAddressPrefix": "*",
|
||||
"destinationPortRange": "80",
|
||||
"priority": 1001
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"operation": "Microsoft.Network/networkSecurityGroups/securityRules/write",
|
||||
"rule": {
|
||||
"direction": "Inbound",
|
||||
"access": "Allow",
|
||||
"protocol": "TCP",
|
||||
"sourceAddressPrefix": "172.16.0.0/16",
|
||||
"sourcePortRange": "*",
|
||||
"destinationAddressPrefix": "*",
|
||||
"destinationPortRange": "22",
|
||||
"priority": 1200
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"operation": "Microsoft.Network/networkSecurityGroups/securityRules/write",
|
||||
"rule": {
|
||||
"direction": "Inbound",
|
||||
"access": "Allow",
|
||||
"protocol": "TCP",
|
||||
"sourceAddressPrefix": "203.0.113.0/24",
|
||||
"sourcePortRange": "*",
|
||||
"destinationAddressPrefix": "*",
|
||||
"destinationPortRange": "443",
|
||||
"priority": 300
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"account": {
|
||||
"name": "mystorageaccount",
|
||||
"tier": "Standard",
|
||||
"replication": "LRS",
|
||||
"location": "eastus",
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
},
|
||||
"container": {
|
||||
"name": "data",
|
||||
"publicAccess": "None"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"account": {
|
||||
"name": "devstorageaccount",
|
||||
"tier": "Premium",
|
||||
"replication": "LRS",
|
||||
"location": "westus2",
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
},
|
||||
"container": {
|
||||
"name": "logs",
|
||||
"publicAccess": "None"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"account": {
|
||||
"name": "prodstorageaccount",
|
||||
"tier": "Standard",
|
||||
"replication": "GRS",
|
||||
"location": "eastus",
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
},
|
||||
"container": {
|
||||
"name": "backups",
|
||||
"publicAccess": "None"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"vm": {
|
||||
"size": "Standard_D2s_v3",
|
||||
"os": "Linux",
|
||||
"location": "eastus",
|
||||
"tags": {
|
||||
"environment": "production",
|
||||
"department": "engineering"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"department": "engineering"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"vm": {
|
||||
"size": "Standard_B1s",
|
||||
"os": "Windows",
|
||||
"location": "westus2",
|
||||
"tags": {
|
||||
"environment": "dev",
|
||||
"department": "marketing"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"department": "marketing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"vm": {
|
||||
"size": "Standard_D4s_v3",
|
||||
"os": "Linux",
|
||||
"location": "eastus",
|
||||
"tags": {
|
||||
"environment": "production",
|
||||
"department": "engineering"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"department": "engineering"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"operation": "collect",
|
||||
"data": {
|
||||
"type": "email",
|
||||
"source": "user_input"
|
||||
},
|
||||
"consent": {
|
||||
"given": true,
|
||||
"purpose": "marketing",
|
||||
"date": "2023-01-15"
|
||||
},
|
||||
"user": {
|
||||
"age": 25,
|
||||
"location": "US"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"operation": "process",
|
||||
"data": {
|
||||
"type": "survey_response",
|
||||
"source": "user_input"
|
||||
},
|
||||
"consent": {
|
||||
"given": true,
|
||||
"purpose": "analytics",
|
||||
"date": "2023-06-15"
|
||||
},
|
||||
"user": {
|
||||
"age": 30,
|
||||
"location": "US"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"operation": "delete",
|
||||
"data": {
|
||||
"type": "user_profile",
|
||||
"source": "database"
|
||||
},
|
||||
"consent": {
|
||||
"given": false,
|
||||
"purpose": "none",
|
||||
"date": "2022-01-01"
|
||||
},
|
||||
"user": {
|
||||
"age": 16,
|
||||
"location": "EU"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"data": {
|
||||
"type": "user_profile",
|
||||
"classification": "personal",
|
||||
"contains_pii": true,
|
||||
"region": "EU"
|
||||
},
|
||||
"user": {
|
||||
"clearance": "confidential",
|
||||
"location": "EU"
|
||||
},
|
||||
"operation": "read"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"data": {
|
||||
"type": "financial_report",
|
||||
"classification": "confidential",
|
||||
"contains_pii": false,
|
||||
"region": "US"
|
||||
},
|
||||
"user": {
|
||||
"clearance": "secret",
|
||||
"location": "US"
|
||||
},
|
||||
"operation": "read"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"data": {
|
||||
"type": "public_announcement",
|
||||
"classification": "public",
|
||||
"contains_pii": false,
|
||||
"region": "GLOBAL"
|
||||
},
|
||||
"user": {
|
||||
"clearance": "public",
|
||||
"location": "EU"
|
||||
},
|
||||
"operation": "read"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"user": {
|
||||
"name": "alice",
|
||||
"roles": ["viewer", "editor"]
|
||||
},
|
||||
"resource": {
|
||||
"name": "document1",
|
||||
"type": "document",
|
||||
"owner": "alice"
|
||||
},
|
||||
"action": "read"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"user": {
|
||||
"name": "bob",
|
||||
"roles": ["admin"]
|
||||
},
|
||||
"resource": {
|
||||
"name": "document2",
|
||||
"type": "document",
|
||||
"owner": "bob"
|
||||
},
|
||||
"action": "write"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"user": {
|
||||
"name": "charlie",
|
||||
"roles": ["viewer"]
|
||||
},
|
||||
"resource": {
|
||||
"name": "document3",
|
||||
"type": "document",
|
||||
"owner": "alice"
|
||||
},
|
||||
"action": "read"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"time": "09:30:00",
|
||||
"day": "monday",
|
||||
"user": {
|
||||
"role": "employee",
|
||||
"shift": "day"
|
||||
},
|
||||
"request": {
|
||||
"urgent": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"time": "14:30:00",
|
||||
"day": "wednesday",
|
||||
"user": {
|
||||
"role": "employee",
|
||||
"shift": "day"
|
||||
},
|
||||
"request": {
|
||||
"urgent": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"time": "22:00:00",
|
||||
"day": "friday",
|
||||
"user": {
|
||||
"role": "admin",
|
||||
"shift": "night"
|
||||
},
|
||||
"request": {
|
||||
"urgent": true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user