Removing global lock from Process.Start on Windows
Build dotnet/runtime with:
build.cmd -s clr+libs -c release
src\tests\build.cmd Release generatelayoutonly
BenchmarkDotNet v0.14.0, Windows 11 (10.0.22631.4169/23H2/2023Update/SunValley3)
AMD Ryzen Threadripper PRO 3955WX 16-Cores, 1 CPU, 32 logical and 16 physical cores
.NET SDK 9.0.100-rc.1.24452.12
[Host] : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
Method
NumberOfProceses
Mean
Error
StdDev
LaunchStandard
1
6.157 ms
0.0873 ms
0.0817 ms
LaunchWithRedirection
1
6.213 ms
0.0862 ms
0.0806 ms
LaunchStandard
16
34.612 ms
0.1935 ms
0.1715 ms
LaunchWithRedirection
16
34.820 ms
0.1758 ms
0.1559 ms
LaunchStandard
256
490.711 ms
3.3823 ms
3.1638 ms
LaunchWithRedirection
256
495.615 ms
4.5181 ms
4.2263 ms
dotnet/runtime#107836
dotnet run -c release -- --coreRun F:\externsrc\dotnet\runtime\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root\corerun.exe
.NET SDK 9.0.100-rc.1.24452.12
[Host] : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
Job-QVPEDD : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX2
Method
NumberOfProceses
Mean
Error
StdDev
LaunchStandard
1
6.057 ms
0.0874 ms
0.0818 ms
LaunchWithRedirection
1
6.088 ms
0.0956 ms
0.0894 ms
LaunchStandard
16
14.736 ms
0.1387 ms
0.1298 ms
LaunchWithRedirection
16
37.486 ms
0.3947 ms
0.3499 ms
LaunchStandard
256
136.704 ms
2.6484 ms
2.6010 ms
LaunchWithRedirection
256
513.196 ms
9.7459 ms
10.8325 ms