Skip to content

Conversation

@nietras
Copy link
Contributor

@nietras nietras commented Dec 7, 2021

Follow up to #2083 cc: @adamsitnik feel free to make whatever changes you deem necessary. Note I expanded line length range to include 1025-2048 specifically to trigger StreamReader.ReadLine path that allocates StringBuilder.

@nietras
Copy link
Contributor Author

nietras commented Dec 7, 2021

Example output, with no difference in PR branch.

dotnet run -c Release -f net6.0 --filter *StreamReaderReadLine* --coreRun "C:\git\oss\runtime-m\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\CoreRun.exe" "C:\git\oss\runtime-pr\artifacts\bin\testhost\net7.0-windows-Release-x64\shared\Microsoft.NETCore.App\7.0.0\CoreRun.exe"
BenchmarkDotNet=v0.13.1.1620-nightly, OS=Windows 10.0.19044.1348 (21H2)
AMD Ryzen 9 5950X, 1 CPU, 32 logical and 16 physical cores
.NET SDK=7.0.100-alpha.1.21568.2
  [Host]     : .NET 6.0.0 (6.0.21.48005), X64 RyuJIT
  Job-FHQAYY : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT
  Job-XIARQD : .NET 7.0.0 (42.42.42.42424), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  Arguments=/p:DebugType=portable,-bl:benchmarkdotnet.binlog  IterationTime=250.0000 ms  
MaxIterationCount=20  MinIterationCount=15  WarmupCount=1  
Method Job Toolchain LineLengthRange Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Allocated
ReadLine Job-FHQAYY m [ 0, 0] 38.20 μs 0.079 μs 0.074 μs 38.17 μs 38.10 μs 38.34 μs 1.00 0.00 0.1528 - 3 KB
ReadLine Job-XIARQD pr [ 0, 0] 38.18 μs 0.054 μs 0.051 μs 38.18 μs 38.11 μs 38.26 μs 1.00 0.00 0.1524 - 3 KB
ReadLineAsync Job-FHQAYY m [ 0, 0] 154.39 μs 0.871 μs 0.815 μs 154.32 μs 153.22 μs 155.90 μs 1.00 0.00 34.9265 - 579 KB
ReadLineAsync Job-XIARQD pr [ 0, 0] 156.00 μs 1.474 μs 1.306 μs 155.75 μs 153.04 μs 158.65 μs 1.01 0.01 35.2723 - 579 KB
ReadLine Job-FHQAYY m [ 0, 1024] 11.39 μs 0.086 μs 0.081 μs 11.34 μs 11.29 μs 11.56 μs 1.00 0.00 3.7455 0.0451 61 KB
ReadLine Job-XIARQD pr [ 0, 1024] 11.24 μs 0.027 μs 0.024 μs 11.23 μs 11.22 μs 11.28 μs 0.99 0.01 3.7057 0.0452 61 KB
ReadLineAsync Job-FHQAYY m [ 0, 1024] 15.46 μs 0.472 μs 0.543 μs 15.64 μs 14.03 μs 16.09 μs 1.00 0.00 3.8828 0.0626 64 KB
ReadLineAsync Job-XIARQD pr [ 0, 1024] 14.36 μs 0.755 μs 0.870 μs 14.15 μs 12.73 μs 15.95 μs 0.93 0.07 3.8654 0.0595 64 KB
ReadLine Job-FHQAYY m [ 1, 1] 46.99 μs 0.203 μs 0.170 μs 46.94 μs 46.79 μs 47.33 μs 1.00 0.00 8.0706 - 133 KB
ReadLine Job-XIARQD pr [ 1, 1] 46.76 μs 0.140 μs 0.131 μs 46.72 μs 46.60 μs 47.00 μs 1.00 0.00 8.0706 - 133 KB
ReadLineAsync Job-FHQAYY m [ 1, 1] 129.58 μs 1.331 μs 1.245 μs 129.34 μs 127.84 μs 131.65 μs 1.00 0.00 31.2500 - 517 KB
ReadLineAsync Job-XIARQD pr [ 1, 1] 128.40 μs 0.953 μs 0.892 μs 128.38 μs 126.73 μs 129.96 μs 0.99 0.01 31.5041 - 517 KB
ReadLine Job-FHQAYY m [ 1, 8] 40.11 μs 0.704 μs 0.588 μs 40.35 μs 38.99 μs 41.15 μs 1.00 0.00 5.6533 - 95 KB
ReadLine Job-XIARQD pr [ 1, 8] 41.61 μs 0.821 μs 0.843 μs 41.87 μs 39.66 μs 42.49 μs 1.04 0.02 5.6966 - 95 KB
ReadLineAsync Job-FHQAYY m [ 1, 8] 87.17 μs 0.843 μs 0.748 μs 86.84 μs 86.54 μs 89.10 μs 1.00 0.00 17.6105 - 289 KB
ReadLineAsync Job-XIARQD pr [ 1, 8] 89.34 μs 1.754 μs 1.950 μs 89.13 μs 86.42 μs 93.05 μs 1.03 0.02 17.4581 - 289 KB
ReadLine Job-FHQAYY m [ 9, 32] 19.85 μs 0.151 μs 0.134 μs 19.85 μs 19.66 μs 20.13 μs 1.00 0.00 3.2731 - 54 KB
ReadLine Job-XIARQD pr [ 9, 32] 19.72 μs 0.098 μs 0.092 μs 19.74 μs 19.49 μs 19.81 μs 0.99 0.01 3.2813 - 54 KB
ReadLineAsync Job-FHQAYY m [ 9, 32] 33.40 μs 0.404 μs 0.378 μs 33.30 μs 32.91 μs 34.16 μs 1.00 0.00 6.4103 - 105 KB
ReadLineAsync Job-XIARQD pr [ 9, 32] 33.50 μs 0.422 μs 0.394 μs 33.42 μs 32.85 μs 34.22 μs 1.00 0.02 6.3559 - 105 KB
ReadLine Job-FHQAYY m [ 33, 128] 13.75 μs 0.058 μs 0.054 μs 13.74 μs 13.66 μs 13.86 μs 1.00 0.00 2.7316 - 45 KB
ReadLine Job-XIARQD pr [ 33, 128] 13.75 μs 0.040 μs 0.037 μs 13.76 μs 13.68 μs 13.81 μs 1.00 0.00 2.6959 - 45 KB
ReadLineAsync Job-FHQAYY m [ 33, 128] 20.75 μs 0.757 μs 0.871 μs 20.87 μs 19.53 μs 21.80 μs 1.00 0.00 3.5874 - 59 KB
ReadLineAsync Job-XIARQD pr [ 33, 128] 20.47 μs 0.533 μs 0.613 μs 20.17 μs 19.57 μs 21.61 μs 0.99 0.04 3.5737 - 59 KB
ReadLine Job-FHQAYY m [ 129, 1024] 14.13 μs 0.603 μs 0.695 μs 14.46 μs 12.14 μs 14.65 μs 1.00 0.00 3.7330 0.0566 61 KB
ReadLine Job-XIARQD pr [ 129, 1024] 14.32 μs 0.599 μs 0.690 μs 14.57 μs 12.39 μs 14.89 μs 1.02 0.08 3.6999 0.0569 61 KB
ReadLineAsync Job-FHQAYY m [ 129, 1024] 14.96 μs 0.589 μs 0.679 μs 15.24 μs 13.80 μs 15.89 μs 1.00 0.00 3.8411 0.0549 63 KB
ReadLineAsync Job-XIARQD pr [ 129, 1024] 14.64 μs 0.720 μs 0.829 μs 13.99 μs 13.72 μs 15.79 μs 0.98 0.06 3.8117 0.0561 63 KB
ReadLine Job-FHQAYY m [1025, 2048] 12.58 μs 0.158 μs 0.148 μs 12.56 μs 12.41 μs 12.93 μs 1.00 0.00 5.5177 0.1505 91 KB
ReadLine Job-XIARQD pr [1025, 2048] 15.48 μs 0.794 μs 0.914 μs 15.79 μs 12.37 μs 16.09 μs 1.22 0.08 5.5268 0.1764 91 KB
ReadLineAsync Job-FHQAYY m [1025, 2048] 13.30 μs 0.072 μs 0.067 μs 13.29 μs 13.22 μs 13.44 μs 1.00 0.00 5.5614 0.2119 91 KB
ReadLineAsync Job-XIARQD pr [1025, 2048] 13.40 μs 0.139 μs 0.124 μs 13.38 μs 13.27 μs 13.71 μs 1.01 0.01 5.5946 0.2131 91 KB

Copy link
Member

@adamsitnik adamsitnik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you @nietras !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants