Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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