Skip to content

Commit 6de0f14

Browse files
authored
ci/performance testing to v1 (#2310)
* ci: performance project scaffolding * chore: moves benchmark to dedicated directory Signed-off-by: Vincent Biret <[email protected]> * chore: commits initial benchmark results Signed-off-by: Vincent Biret <[email protected]> * ci: adds a comparison project for benchmark results Signed-off-by: Vincent Biret <[email protected]> * ci: adds benchmark runs and comparison Signed-off-by: Vincent Biret <[email protected]> * ci: renames empty models tests Signed-off-by: Vincent Biret <[email protected]> * chore: refactors to a command structure Signed-off-by: Vincent Biret <[email protected]> * chore: moves models to a dedicated source file chore: uses STJ attribute based serialization Signed-off-by: Vincent Biret <[email protected]> * ci: fixes missing project argument Signed-off-by: Vincent Biret <[email protected]> * ci: fixes reports path Signed-off-by: Vincent Biret <[email protected]> * chore: moves policies to own directory Signed-off-by: Vincent Biret <[email protected]> * chore: no warn on static method for perf test project * chore: linting Signed-off-by: Vincent Biret <[email protected]> * chore: reduces run time for empty performance tests Signed-off-by: Vincent Biret <[email protected]> * chore: linting Signed-off-by: Vincent Biret <[email protected]> * ci: fixes working directory for benchmark run Signed-off-by: Vincent Biret <[email protected]> * ci: adds basic infrastructure for descriptions based performance tests Signed-off-by: Vincent Biret <[email protected]> * chore: refresh empty object tests Signed-off-by: Vincent Biret <[email protected]> * ci: adds comparison run for descriptions comparisons Signed-off-by: Vincent Biret <[email protected]> * ci: adds percentage based comparisons Signed-off-by: Vincent Biret <[email protected]> * ci: adds large description to performance tests Signed-off-by: Vincent Biret <[email protected]> * ci: adds yaml descriptions perf tests to compare Signed-off-by: Vincent Biret <[email protected]> * chore: updates performance tests to work with v1 Signed-off-by: Vincent Biret <[email protected]> * chore: updates performance tests results Signed-off-by: Vincent Biret <[email protected]> * ci: adds truncation in percentage difference to reduce noise Signed-off-by: Vincent Biret <[email protected]> * chore: fixes sln references --------- Signed-off-by: Vincent Biret <[email protected]>
1 parent 554ec5b commit 6de0f14

27 files changed

+1329
-3
lines changed

.github/workflows/ci-cd.yml

+53-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Setup .NET
1717
uses: actions/setup-dotnet@v4
1818
with:
19-
dotnet-version: 8.0.x
19+
dotnet-version: 8.x
2020

2121
- name: Checkout repository
2222
id: checkout_repo
@@ -36,3 +36,55 @@ jobs:
3636
shell: pwsh
3737
run: |
3838
dotnet test Microsoft.OpenApi.sln -c Release -v n
39+
40+
validate-trimming:
41+
name: Validate Project for Trimming
42+
runs-on: windows-latest
43+
steps:
44+
- uses: actions/checkout@v4
45+
46+
- name: Setup .NET
47+
uses: actions/setup-dotnet@v4
48+
with:
49+
dotnet-version: 8.x
50+
51+
- name: Validate Trimming warnings
52+
run: dotnet publish -c Release -r win-x64 /p:TreatWarningsAsErrors=true /warnaserror -f net8.0
53+
working-directory: ./test/Microsoft.OpenApi.Trimming.Tests
54+
55+
validate-performance:
56+
name: Validate performance of the library
57+
runs-on: ubuntu-latest
58+
needs: [ci]
59+
steps:
60+
- name: Checkout repository
61+
uses: actions/checkout@v4
62+
63+
- name: Setup .NET
64+
uses: actions/setup-dotnet@v4
65+
with:
66+
dotnet-version: 8.x
67+
68+
- name: Copy committed results
69+
run: |
70+
mkdir -p ./performanceResults
71+
cp -r ./performance/benchmark/BenchmarkDotNet.Artifacts/results/* ./performanceResults
72+
73+
- name: Run performance tests
74+
run: |
75+
dotnet run -c Release
76+
working-directory: ./performance/benchmark
77+
78+
- name: Run comparison tool for empty models
79+
run: dotnet run -c Release --project ./performance/resultsComparer/resultsComparer.csproj -- compare $OLD_REPORT $NEW_REPORT -p IdenticalMemoryUsage
80+
shell: bash
81+
env:
82+
NEW_REPORT: "${{ github.workspace }}/performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.EmptyModels-report.json"
83+
OLD_REPORT: "${{ github.workspace }}/performanceResults/performance.EmptyModels-report.json"
84+
85+
- name: Run comparison tool for descriptions
86+
run: dotnet run -c Release --project ./performance/resultsComparer/resultsComparer.csproj -- compare $OLD_REPORT $NEW_REPORT -p ZeroPointOnePercentDifferenceMemoryUsage
87+
shell: bash
88+
env:
89+
NEW_REPORT: "${{ github.workspace }}/performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.json"
90+
OLD_REPORT: "${{ github.workspace }}/performanceResults/performance.Descriptions-report.json"

.vscode/launch.json

+32-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,38 @@
2222
{
2323
// Use IntelliSense to find out which attributes exist for C# debugging
2424
// Use hover for the description of the existing attributes
25-
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
25+
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/main/debugger-launchjson.md
26+
"name": "Launch Benchmark",
27+
"type": "coreclr",
28+
"request": "launch",
29+
"preLaunchTask": "build",
30+
// If you have changed target frameworks, make sure to update the program path.
31+
"program": "${workspaceFolder}/performance/benchmark/bin/Release/net8.0/PerformanceTests.dll",
32+
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
33+
"console": "internalConsole",
34+
"stopAtEntry": false,
35+
},
36+
{
37+
// Use IntelliSense to find out which attributes exist for C# debugging
38+
// Use hover for the description of the existing attributes
39+
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/main/debugger-launchjson.md
40+
"name": "Launch Results comparer",
41+
"type": "coreclr",
42+
"request": "launch",
43+
"preLaunchTask": "build",
44+
// If you have changed target frameworks, make sure to update the program path.
45+
"program": "${workspaceFolder}/performance/resultsComparer/bin/Debug/net8.0/resultsComparer.dll",
46+
"cwd": "${workspaceFolder}/performance/resultsComparer",
47+
"args": ["compare"],
48+
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
49+
"console": "internalConsole",
50+
"stopAtEntry": false,
51+
"requireExactSource": false,
52+
},
53+
{
54+
// Use IntelliSense to find out which attributes exist for C# debugging
55+
// Use hover for the description of the existing attributes
56+
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/main/debugger-launchjson.md
2657
"name": "Launch Workbench",
2758
"type": "coreclr",
2859
"request": "launch",

.vscode/tasks.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"group": "build",
1111
"args": [
1212
"build",
13-
"${workspaceFolder}/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj",
13+
"${workspaceFolder}/Microsoft.OpenApi.sln",
1414
"/property:GenerateFullPaths=true",
1515
"/consoleloggerparameters:NoSummary"
1616
],

Microsoft.OpenApi.sln

+103
Original file line numberDiff line numberDiff line change
@@ -30,44 +30,144 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.OpenApi.Hidi.Test
3030
EndProject
3131
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.OpenApi.Trimming.Tests", "test\Microsoft.OpenApi.Trimming.Tests\Microsoft.OpenApi.Trimming.Tests.csproj", "{1D2E0C6E-B103-4CB6-912E-D56FA1501296}"
3232
EndProject
33+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "performance", "performance", "{D4B74A0E-1C52-E2FD-154E-FB64CAA65177}"
34+
EndProject
35+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmark", "benchmark", "{0CDFEE42-0230-388B-0CCE-7A719036F8EF}"
36+
EndProject
37+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerformanceTests", "performance\benchmark\PerformanceTests.csproj", "{EB81FCF5-7ED7-4480-8267-3613202347E3}"
38+
EndProject
39+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "resultsComparer", "performance\resultsComparer\resultsComparer.csproj", "{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}"
40+
EndProject
3341
Global
3442
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3543
Debug|Any CPU = Debug|Any CPU
44+
Debug|x64 = Debug|x64
45+
Debug|x86 = Debug|x86
3646
Release|Any CPU = Release|Any CPU
47+
Release|x64 = Release|x64
48+
Release|x86 = Release|x86
3749
EndGlobalSection
3850
GlobalSection(ProjectConfigurationPlatforms) = postSolution
3951
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4052
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|Any CPU.Build.0 = Debug|Any CPU
53+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|x64.ActiveCfg = Debug|Any CPU
54+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|x64.Build.0 = Debug|Any CPU
55+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|x86.ActiveCfg = Debug|Any CPU
56+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|x86.Build.0 = Debug|Any CPU
4157
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|Any CPU.ActiveCfg = Release|Any CPU
4258
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|Any CPU.Build.0 = Release|Any CPU
59+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|x64.ActiveCfg = Release|Any CPU
60+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|x64.Build.0 = Release|Any CPU
61+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|x86.ActiveCfg = Release|Any CPU
62+
{A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|x86.Build.0 = Release|Any CPU
4363
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4464
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|Any CPU.Build.0 = Debug|Any CPU
65+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|x64.ActiveCfg = Debug|Any CPU
66+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|x64.Build.0 = Debug|Any CPU
67+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|x86.ActiveCfg = Debug|Any CPU
68+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|x86.Build.0 = Debug|Any CPU
4569
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|Any CPU.ActiveCfg = Release|Any CPU
4670
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|Any CPU.Build.0 = Release|Any CPU
71+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|x64.ActiveCfg = Release|Any CPU
72+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|x64.Build.0 = Release|Any CPU
73+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|x86.ActiveCfg = Release|Any CPU
74+
{6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|x86.Build.0 = Release|Any CPU
4775
{79933258-0126-4382-8755-D50820ECC483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4876
{79933258-0126-4382-8755-D50820ECC483}.Debug|Any CPU.Build.0 = Debug|Any CPU
77+
{79933258-0126-4382-8755-D50820ECC483}.Debug|x64.ActiveCfg = Debug|Any CPU
78+
{79933258-0126-4382-8755-D50820ECC483}.Debug|x64.Build.0 = Debug|Any CPU
79+
{79933258-0126-4382-8755-D50820ECC483}.Debug|x86.ActiveCfg = Debug|Any CPU
80+
{79933258-0126-4382-8755-D50820ECC483}.Debug|x86.Build.0 = Debug|Any CPU
4981
{79933258-0126-4382-8755-D50820ECC483}.Release|Any CPU.ActiveCfg = Release|Any CPU
5082
{79933258-0126-4382-8755-D50820ECC483}.Release|Any CPU.Build.0 = Release|Any CPU
83+
{79933258-0126-4382-8755-D50820ECC483}.Release|x64.ActiveCfg = Release|Any CPU
84+
{79933258-0126-4382-8755-D50820ECC483}.Release|x64.Build.0 = Release|Any CPU
85+
{79933258-0126-4382-8755-D50820ECC483}.Release|x86.ActiveCfg = Release|Any CPU
86+
{79933258-0126-4382-8755-D50820ECC483}.Release|x86.Build.0 = Release|Any CPU
5187
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
5288
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|Any CPU.Build.0 = Debug|Any CPU
89+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|x64.ActiveCfg = Debug|Any CPU
90+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|x64.Build.0 = Debug|Any CPU
91+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|x86.ActiveCfg = Debug|Any CPU
92+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Debug|x86.Build.0 = Debug|Any CPU
5393
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|Any CPU.ActiveCfg = Release|Any CPU
5494
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|Any CPU.Build.0 = Release|Any CPU
95+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|x64.ActiveCfg = Release|Any CPU
96+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|x64.Build.0 = Release|Any CPU
97+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|x86.ActiveCfg = Release|Any CPU
98+
{AD83F991-DBF3-4251-8613-9CC54C826964}.Release|x86.Build.0 = Release|Any CPU
5599
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
56100
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|Any CPU.Build.0 = Debug|Any CPU
101+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|x64.ActiveCfg = Debug|Any CPU
102+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|x64.Build.0 = Debug|Any CPU
103+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|x86.ActiveCfg = Debug|Any CPU
104+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Debug|x86.Build.0 = Debug|Any CPU
57105
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|Any CPU.ActiveCfg = Release|Any CPU
58106
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|Any CPU.Build.0 = Release|Any CPU
107+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|x64.ActiveCfg = Release|Any CPU
108+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|x64.Build.0 = Release|Any CPU
109+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|x86.ActiveCfg = Release|Any CPU
110+
{1ED3C2C1-E1E7-4925-B4E6-2D969C3F5237}.Release|x86.Build.0 = Release|Any CPU
59111
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
60112
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
113+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|x64.ActiveCfg = Debug|Any CPU
114+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|x64.Build.0 = Debug|Any CPU
115+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|x86.ActiveCfg = Debug|Any CPU
116+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Debug|x86.Build.0 = Debug|Any CPU
61117
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
62118
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|Any CPU.Build.0 = Release|Any CPU
119+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|x64.ActiveCfg = Release|Any CPU
120+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|x64.Build.0 = Release|Any CPU
121+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|x86.ActiveCfg = Release|Any CPU
122+
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE}.Release|x86.Build.0 = Release|Any CPU
63123
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
64124
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|Any CPU.Build.0 = Debug|Any CPU
125+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|x64.ActiveCfg = Debug|Any CPU
126+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|x64.Build.0 = Debug|Any CPU
127+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|x86.ActiveCfg = Debug|Any CPU
128+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Debug|x86.Build.0 = Debug|Any CPU
65129
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|Any CPU.ActiveCfg = Release|Any CPU
66130
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|Any CPU.Build.0 = Release|Any CPU
131+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|x64.ActiveCfg = Release|Any CPU
132+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|x64.Build.0 = Release|Any CPU
133+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|x86.ActiveCfg = Release|Any CPU
134+
{D8F799DD-04AC-4A13-B344-45A5B944450A}.Release|x86.Build.0 = Release|Any CPU
67135
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
68136
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|Any CPU.Build.0 = Debug|Any CPU
137+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|x64.ActiveCfg = Debug|Any CPU
138+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|x64.Build.0 = Debug|Any CPU
139+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|x86.ActiveCfg = Debug|Any CPU
140+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Debug|x86.Build.0 = Debug|Any CPU
69141
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|Any CPU.ActiveCfg = Release|Any CPU
70142
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|Any CPU.Build.0 = Release|Any CPU
143+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|x64.ActiveCfg = Release|Any CPU
144+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|x64.Build.0 = Release|Any CPU
145+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|x86.ActiveCfg = Release|Any CPU
146+
{1D2E0C6E-B103-4CB6-912E-D56FA1501296}.Release|x86.Build.0 = Release|Any CPU
147+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
148+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
149+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|x64.ActiveCfg = Debug|Any CPU
150+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|x64.Build.0 = Debug|Any CPU
151+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|x86.ActiveCfg = Debug|Any CPU
152+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Debug|x86.Build.0 = Debug|Any CPU
153+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
154+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|Any CPU.Build.0 = Release|Any CPU
155+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|x64.ActiveCfg = Release|Any CPU
156+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|x64.Build.0 = Release|Any CPU
157+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|x86.ActiveCfg = Release|Any CPU
158+
{EB81FCF5-7ED7-4480-8267-3613202347E3}.Release|x86.Build.0 = Release|Any CPU
159+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
160+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
161+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|x64.ActiveCfg = Debug|Any CPU
162+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|x64.Build.0 = Debug|Any CPU
163+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|x86.ActiveCfg = Debug|Any CPU
164+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Debug|x86.Build.0 = Debug|Any CPU
165+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
166+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|Any CPU.Build.0 = Release|Any CPU
167+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|x64.ActiveCfg = Release|Any CPU
168+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|x64.Build.0 = Release|Any CPU
169+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|x86.ActiveCfg = Release|Any CPU
170+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A}.Release|x86.Build.0 = Release|Any CPU
71171
EndGlobalSection
72172
GlobalSection(SolutionProperties) = preSolution
73173
HideSolutionNode = FALSE
@@ -81,6 +181,9 @@ Global
81181
{254841B5-7DAC-4D1D-A9C5-44FE5CE467BE} = {E546B92F-20A8-49C3-8323-4B25BB78F3E1}
82182
{D8F799DD-04AC-4A13-B344-45A5B944450A} = {6357D7FD-2DE4-4900-ADB9-ABC37052040A}
83183
{1D2E0C6E-B103-4CB6-912E-D56FA1501296} = {6357D7FD-2DE4-4900-ADB9-ABC37052040A}
184+
{0CDFEE42-0230-388B-0CCE-7A719036F8EF} = {D4B74A0E-1C52-E2FD-154E-FB64CAA65177}
185+
{EB81FCF5-7ED7-4480-8267-3613202347E3} = {0CDFEE42-0230-388B-0CCE-7A719036F8EF}
186+
{72459CA5-C3AF-462E-98BC-81BC0E0F6B2A} = {D4B74A0E-1C52-E2FD-154E-FB64CAA65177}
84187
EndGlobalSection
85188
GlobalSection(ExtensibilityGlobals) = postSolution
86189
SolutionGuid = {9F171EFC-0DB5-4B10-ABFA-AF48D52CC565}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
```
2+
3+
BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.3476)
4+
11th Gen Intel Core i7-1185G7 3.00GHz, 1 CPU, 8 logical and 4 physical cores
5+
.NET SDK 9.0.202
6+
[Host] : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
7+
ShortRun : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
8+
9+
Job=ShortRun IterationCount=3 LaunchCount=1
10+
WarmupCount=3
11+
12+
```
13+
| Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
14+
|------------- |---------------:|-------------:|-------------:|-----------:|-----------:|----------:|-------------:|
15+
| PetStoreYaml | 448.7 μs | 326.6 μs | 17.90 μs | 58.5938 | 11.7188 | - | 381.79 KB |
16+
| PetStoreJson | 484.8 μs | 156.9 μs | 8.60 μs | 62.5000 | 15.6250 | - | 389.28 KB |
17+
| GHESYaml | 1,008,349.6 μs | 565,392.0 μs | 30,991.04 μs | 66000.0000 | 23000.0000 | 4000.0000 | 382785 KB |
18+
| GHESJson | 1,039,447.0 μs | 267,501.0 μs | 14,662.63 μs | 67000.0000 | 23000.0000 | 4000.0000 | 389970.77 KB |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen0,Gen1,Gen2,Allocated
2+
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,11111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,448.7 μs,326.6 μs,17.90 μs,58.5938,11.7188,0.0000,381.79 KB
3+
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,11111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,484.8 μs,156.9 μs,8.60 μs,62.5000,15.6250,0.0000,389.28 KB
4+
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,11111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"1,008,349.6 μs","565,392.0 μs","30,991.04 μs",66000.0000,23000.0000,4000.0000,382785 KB
5+
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,11111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"1,039,447.0 μs","267,501.0 μs","14,662.63 μs",67000.0000,23000.0000,4000.0000,389970.77 KB

0 commit comments

Comments
 (0)