Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,6 @@ BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx

# BenchmarkDotNet artifacts (extensionless files included; benchmarks/baselines is covered by benchmarks/.gitignore)
Rx.NET/Source/BenchmarkDotNet.Artifacts/
5 changes: 2 additions & 3 deletions Rx.NET/Source/System.Reactive.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@
</Project>
</Folder>
<Folder Name="/Benchmarks/">
<Project Path="benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj">
<BuildType Project="Current Sources" />
</Project>
<Project Path="benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj" />
<Project Path="benchmarks/Rx.WorkloadHarness/Rx.WorkloadHarness.csproj" />
</Folder>
<Folder Name="/FrameworkIntegrations/">
<Project Path="src/System.Reactive.MakeRefAssemblies/System.Reactive.MakeRefAssemblies.csproj">
Expand Down
8 changes: 8 additions & 0 deletions Rx.NET/Source/benchmarks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Benchmark run outputs (results, baselines, traces) are NOT committed to the repo.
# Keep them locally or publish them as CI artifacts. See notes/benchmark-expansion-plan.md.
baselines/
traces/
BenchmarkDotNet.Artifacts/

# Local planning / guideline docs kept alongside the suite but not committed.
notes/

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net472</TargetFramework>
<TargetFrameworks>net472;net8.0;net9.0;net10.0</TargetFrameworks>
<Optimize>true</Optimize>
<IsPackable>false</IsPackable>
<Configurations>Current Sources;Rx.net 3.1.1;Rx.net 4.0</Configurations>

<!--
The benchmark suite always measures the current in-repo sources. The old per-config
cross-version comparison (Rx 3.1.1 / 4.0) has been dropped; before/after comparisons are
cross-run instead — see tools/capture-baseline.ps1 and tools/compare-results.ps1.
-->
</PropertyGroup>

<!--
Test projects are not designed for public consumption so the analysis rules mostly produce
Benchmarks are not designed for public consumption, so the analysis rules mostly produce
false positives.
-->

<PropertyGroup>
<AnalysisLevelNaming>7.0-none</AnalysisLevelNaming>
<AnalysisLevelPerformance>7.0-none</AnalysisLevelPerformance>
Expand All @@ -23,41 +27,30 @@
<GlobalAnalyzerConfigFiles Remove="$(MSBuildThisFileDirectory)..\..\analyzers.globalconfig" />
</ItemGroup>


<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Rx.net 3.1.1|AnyCPU'">
<DefineConstants>$(DefineConstants);RX3_1_1</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Rx.net 4.0|AnyCPU'">
<DefineConstants>$(DefineConstants);RX4_0</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Current Sources|AnyCPU'">
<DefineConstants>$(DefineConstants);CURRENT</DefineConstants>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.15.8" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.1.0" />
<PackageReference Include="MSTest.TestFramework" Version="4.1.0" />
<PackageReference Include="WindowsBase" Version="4.6.1055" />
</ItemGroup>

<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Rx.net 3.1.1|AnyCPU'">
<PackageReference Include="System.Reactive" Version="3.1.1" />
</ItemGroup>

<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Rx.net 4.0|AnyCPU'">
<PackageReference Include="System.Reactive" Version="4.0.0" />
<!--
EtwProfiler + hardware counters (Windows). The EventPipe / Disassembly / Threading diagnosers
ship in the core BenchmarkDotNet package. Together they enable the opt-in profiler and disasm
CLI switches used by the profiling / telemetry feedback loop.
-->
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.15.8" />
</ItemGroup>

<!--
Reference the product projects directly (not via the test project), so the benchmark graph no
longer drags in MSTest / xUnit / the whole test assembly. System.Reactive (max net8.0) resolves
to its net472 output for the net472 TFM and its net8.0 output for net8/net9/net10.
-->
<ItemGroup>
<ProjectReference Include="..\..\tests\Tests.System.Reactive\Tests.System.Reactive.csproj" />
<ProjectReference Include="..\..\src\System.Reactive\System.Reactive.csproj" />
<ProjectReference Include="..\..\src\Microsoft.Reactive.Testing\Microsoft.Reactive.Testing.csproj" />
</ItemGroup>

<ItemGroup>
<!-- .NET Framework-only UI assemblies, retained for the legacy net472 benchmarks; the new suite avoids UI-thread schedulers. -->
<ItemGroup Condition="'$(TargetFramework)' == 'net472'">
<Reference Include="System.Windows.Forms" />
<PackageReference Include="WindowsBase" Version="4.6.1055" />
</ItemGroup>

</Project>

This file was deleted.

This file was deleted.

Loading