diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 208cb646..9845d218 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,6 +42,8 @@ jobs: run: soup restore ./soup/code/generate-test/ - name: Soup Build GenerateTest run: soup build ./soup/code/generate-test/ -flavor ${{matrix.config}} + - name: Soup Build BenchmarkTests + run: soup build ./soup/code/benchmark-tests/ -flavor ${{matrix.config}} # - name: Soup Restore SWhere # run: soup restore ./soup/code/generate-sharp/swhere/ # - name: Soup Build SWhere diff --git a/code/bench-tests/main.cpp b/code/bench-tests/main.cpp index 6153e08f..9f746b97 100644 --- a/code/bench-tests/main.cpp +++ b/code/bench-tests/main.cpp @@ -630,6 +630,21 @@ int main() arguments.HostPlatform = "FakePlatform"; arguments.WorkingDirectory = Path("C:/WorkingDirectory/MyPackage/"); + auto systemReadAccess = std::vector(); + + // Platform specific defaults + #if defined(_WIN32) + auto hostPlatform = "Windows"; + + // Allow read access from system directories + systemReadAccess.push_back( + Path("C:/Windows/")); + #elif defined(__linux__) + auto hostPlatform = "Linux"; + #else + #error "Unknown Platform" + #endif + // Load user config state auto userDataPath = BuildEngine::GetSoupUserDataPath(); auto recipeCache = RecipeCache(); @@ -639,12 +654,14 @@ int main() std::nullopt, arguments.GlobalParameters, userDataPath, + hostPlatform, recipeCache); BuildEngine::Execute( packageProvider, std::move(arguments), userDataPath, + systemReadAccess, recipeCache); }); } diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 75bb2361..2420df67 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -10,4 +10,17 @@ Current benchmark numbers on my Lenovo Yoga 7 Intel Core Ultra 7 258V with Win11 | 113.23 | 8,831,847.65 | 2.8% | 0.03 | `OperationResultsReader Deserialize Empty` | 702.65 | 1,423,178.43 | 1.8% | 0.17 | `OperationResultsReader Deserialize Complex` | 1,071.80 | 933,012.90 | 1.0% | 0.26 | `RecipeSML Deserialize Simple` -| 6,152.02 | 162,548.28 | 1.0% | 1.48 | `RecipeSML Deserialize Complex` \ No newline at end of file +| 6,152.02 | 162,548.28 | 1.0% | 1.48 | `RecipeSML Deserialize Complex` + +Current benchmark numbers on my Lenovo Yoga 7 Intel Core Ultra 7 258V with Ubuntu 24.04 LTS + +| ns/op | op/s | err% | total | benchmark +|--------------------:|--------------------:|--------:|----------:|:---------- +| 1,965.90 | 508,674.16 | 0.6% | 0.49 | `PackageReference Parse Name Only` +| 2,733.01 | 365,896.80 | 1.5% | 0.66 | `PackageReference Parse Language, User, Name and Version` +| 99.55 | 10,045,681.30 | 0.4% | 0.02 | `ValueTableReader Deserialize Empty` +| 4,901.49 | 204,019.48 | 0.7% | 1.17 | `ValueTableReader Deserialize Complex` +| 139.18 | 7,185,191.42 | 0.7% | 0.03 | `OperationResultsReader Deserialize Empty` +| 3,551.31 | 281,586.57 | 0.7% | 0.85 | `OperationResultsReader Deserialize Complex` +| 5,955.45 | 167,913.35 | 0.6% | 1.42 | `RecipeSML Deserialize Simple` +| 19,341.45 | 51,702.42 | 1.1% | 4.64 | `RecipeSML Deserialize Complex` \ No newline at end of file