Nbench: dotnet-nbench рдЧрд▓рддреА рд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрдЬрд╛рдп [рдЕрд╕реЗрдВрдмрд▓реА-рдирд╛рдо] .deps.json рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЬрдире░ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: petabridge/NBench

.NET Core 2.2 рдФрд░ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдкрд░ рд╣реЛрддрд╛ рд╣реИред

bug benchmark-execution netcore

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди/рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рдореИрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдХреНрд╖реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рд╕рд╛рде рдереАред рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:
1) рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ Global.json (рд╕рдВрджрд░реНрдн: https://markheath.net/post/switching-between-netcore-sdk-versions) рдЬреЛрдбрд╝рдХрд░ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП CLI рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓рдирд╛

2) рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрдХ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП 2.1 рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрдкрддреНрддрд┐ рд╕рдореВрд╣ рдореЗрдВ csproj рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:
2.1.6

3) рдлрд┐рд░ рдирд┐рд░реНрдорд╛рдг/рдкреНрд░рдХрд╛рд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдмрд╕ рдлрд┐рд░ рд╕реЗ рдХреНрд▓реА рд╕реЗ "рдбреЙрдЯрдиреЗрдЯ рд░рд┐рд╕реНрдЯреЛрд░" рдЪрд▓рд╛рдирд╛ рдерд╛ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл "рдбреЙрдЯрдиреЗрдЯ рдПрдирдмреЗрдВрдЪ" рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рд╡рд┐рд╕реНрддреГрдд рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! @izavala рдФрд░ рдореИрдВ NBench 2.0 рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрдбрд╝рд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдУрд╡рд░рд╣рд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдЧрд╛ред

рдмрд╕ рдЗрд╕ рдореЗрдВ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рд░рди рдореЗрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдХреНрд╖реНрдп рдЪреМрдЦрдЯреЗ рдпрд╛ рд╕рд╛рде рдмреЗрд▓рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ global.json , рдПрдХ рдФрд░ рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ --fx-version {version} рдХреЗ рд╕рд╛рде рдзреНрд╡рдЬ dotnet nbench , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

fxversion=$(dotnet --list-runtimes | \
    grep Microsoft.NETCore.App | \
    awk '{ print $2 }' | \
    tail -1)

dotnet nbench --fx-version $fxversion

рдпрд╛:

$fxversion = dotnet --list-runtimes | `
    select-string "Microsoft.NETCore.App" | `
    select-object -last 1 | `
    foreach-object { $data = $_ -split " "; $data[1] }

dotnet nbench --fx-version $fxversion

рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрдорд╛рдВрдб рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд░рдирд░ dotnet exec рдХрдорд╛рдВрдб рдХреЛ fxVersion рдЪрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рдЦрд╛рд▓реА рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо --fx-version --depsfile "Foo.deps.json" ред рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ dotnet exec рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ --depsfile --fx-version рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдереЗ, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Foo.deps.json рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ .

рдЖрдкрддреНрддрд┐рдЬрдирдХ рд▓рд╛рдЗрди: https://github.com/petabridge/NBench/blob/557f2fbca250a4a45636f5e4b41b58b8440b33f2/src/NBench.Runner.DotNetCli/Program.cs#L284

рдЗрд╕ рдкреИрдЪ рдХреЛ рдЗрд╕реЗ рдареАрдХ

diff --git a/src/NBench.Runner.DotNetCli/Program.cs b/src/NBench.Runner.DotNetCli/Program.cs
index c45b32e..417319c 100644
--- a/src/NBench.Runner.DotNetCli/Program.cs
+++ b/src/NBench.Runner.DotNetCli/Program.cs
@@ -281,7 +281,10 @@ namespace NBench.Runner.DotNetCli
             var depsFile = targetFileNameWithoutExtension + ".deps.json";
             var runtimeConfigJson = targetFileNameWithoutExtension + ".runtimeconfig.json";

-            var args = $@"exec --fx-version {fxVersion} --depsfile ""{depsFile}"" ";
+            var args = $@"exec --depsfile ""{depsFile}"" ";
+
+            if (!string.IsNullOrWhiteSpace(fxVersion))
+                args += $"--fx-version {fxVersion} ";

             if (File.Exists(Path.Combine(workingDirectory, runtimeConfigJson)))
                 args += $@"--runtimeconfig ""{runtimeConfigJson}"" ";

NBench 2.0.0 https://github.com/petabridge/NBench/releases/tag/2.0.0 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдФрд░ рдирд╣реАрдВ dotnet nbench ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

HIPERCUBE picture HIPERCUBE  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

radleta picture radleta  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

punker76 picture punker76  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

academician picture academician  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guevelamax15000 picture guevelamax15000  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ