From 92b53046986707c41f63818290b6c60aa9888367 Mon Sep 17 00:00:00 2001 From: Daniel Weber Date: Mon, 2 Jul 2018 17:40:17 +0200 Subject: [PATCH 1/2] Propose an extension to https://github.com/dotnet/reactive/pull/730 that makes the referenced Rx-version switchable. --- Rx.NET/Source/System.Reactive.sln | 34 +++++++++---------- .../AppendPrependBenchmark.cs | 2 ++ .../Benchmarks.System.Reactive.csproj | 21 ++++++++++++ .../Benchmarks.System.Reactive/Program.cs | 12 +++++-- 4 files changed, 49 insertions(+), 20 deletions(-) diff --git a/Rx.NET/Source/System.Reactive.sln b/Rx.NET/Source/System.Reactive.sln index e5b0725a8a..ebbc1e5d9d 100644 --- a/Rx.NET/Source/System.Reactive.sln +++ b/Rx.NET/Source/System.Reactive.sln @@ -56,7 +56,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reactive.Interfaces" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.System.Reactive.ApiApprovals", "tests\Tests.System.Reactive.ApiApprovals\Tests.System.Reactive.ApiApprovals.csproj", "{01CCDA6D-4D00-4DF2-82B0-359FD5E0CDC6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmarks.System.Reactive", "benchmarks\Benchmarks.System.Reactive\Benchmarks.System.Reactive.csproj", "{5C7906F6-232E-455C-9269-68EF84F393C9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks.System.Reactive", "benchmarks\Benchmarks.System.Reactive\Benchmarks.System.Reactive.csproj", "{5C7906F6-232E-455C-9269-68EF84F393C9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", "{C8E480ED-B592-4341-A0C9-183E822EB6B9}" EndProject @@ -334,22 +334,22 @@ Global {01CCDA6D-4D00-4DF2-82B0-359FD5E0CDC6}.Release|x64.Build.0 = Release|Any CPU {01CCDA6D-4D00-4DF2-82B0-359FD5E0CDC6}.Release|x86.ActiveCfg = Release|Any CPU {01CCDA6D-4D00-4DF2-82B0-359FD5E0CDC6}.Release|x86.Build.0 = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|ARM.ActiveCfg = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|ARM.Build.0 = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x64.ActiveCfg = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x64.Build.0 = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x86.ActiveCfg = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x86.Build.0 = Debug|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|Any CPU.Build.0 = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|ARM.ActiveCfg = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|ARM.Build.0 = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x64.ActiveCfg = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x64.Build.0 = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x86.ActiveCfg = Release|Any CPU - {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x86.Build.0 = Release|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|Any CPU.ActiveCfg = Current Sources|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|Any CPU.Build.0 = Current Sources|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|ARM.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|ARM.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x64.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x64.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x86.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Debug|x86.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|Any CPU.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|Any CPU.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|ARM.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|ARM.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x64.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x64.Build.0 = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x86.ActiveCfg = Rx.net 4.0|Any CPU + {5C7906F6-232E-455C-9269-68EF84F393C9}.Release|x86.Build.0 = Rx.net 4.0|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/AppendPrependBenchmark.cs b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/AppendPrependBenchmark.cs index c60206e1ec..1d2d62979e 100644 --- a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/AppendPrependBenchmark.cs +++ b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/AppendPrependBenchmark.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. +#if (CURRENT) using System; using System.Collections.Generic; using System.Reactive.Linq; @@ -85,3 +86,4 @@ public void AppendPrepend() } } } +#endif diff --git a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj index 419470b657..214dc61061 100644 --- a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj +++ b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj @@ -3,12 +3,33 @@ Exe net46 + Current Sources;Rx.net 3.1.1;Rx.net 4.0 + + + + $(DefineConstants);RX3_1_1 + + + + $(DefineConstants);RX4_0 + + + + $(DefineConstants);CURRENT + + + + + + + + diff --git a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Program.cs b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Program.cs index 59ae9c9ee7..d0b5ce171d 100644 --- a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Program.cs +++ b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Program.cs @@ -1,8 +1,9 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. using System; +using System.Reactive.Linq; using BenchmarkDotNet.Running; namespace Benchmarks.System.Reactive @@ -11,6 +12,8 @@ internal class Program { private static void Main() { + Console.WriteLine("Effective Rx-version: " + typeof(Observable).Assembly.GetName().Version); + var switcher = new BenchmarkSwitcher(new[] { typeof(ZipBenchmark), typeof(CombineLatestBenchmark), @@ -18,8 +21,11 @@ private static void Main() typeof(BufferCountBenchmark), typeof(RangeBenchmark), typeof(ToObservableBenchmark), - typeof(RepeatBenchmark), - typeof(AppendPrependBenchmark) + typeof(RepeatBenchmark) + +#if (CURRENT) + ,typeof(AppendPrependBenchmark) +#endif }); switcher.Run(); From 306afc2ae833587cda6e0bf3badea896849d226a Mon Sep 17 00:00:00 2001 From: Daniel Weber Date: Mon, 2 Jul 2018 19:04:37 +0200 Subject: [PATCH 2/2] Optimize benchmark builds. --- .../Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj index 214dc61061..681394de2e 100644 --- a/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj +++ b/Rx.NET/Source/benchmarks/Benchmarks.System.Reactive/Benchmarks.System.Reactive.csproj @@ -3,6 +3,7 @@ Exe net46 + true Current Sources;Rx.net 3.1.1;Rx.net 4.0