Skip to content

Add StreamReaderReadLineTests and base TextReaderReadLineTests - #2170

Merged
adamsitnik merged 2 commits into
dotnet:mainfrom
nietras:ntr/streamreader-readline
Dec 8, 2021
Merged

Add StreamReaderReadLineTests and base TextReaderReadLineTests#2170
adamsitnik merged 2 commits into
dotnet:mainfrom
nietras:ntr/streamreader-readline

Conversation

@nietras

@nietrasnietras commented Dec 7, 2021

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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 
MethodJobToolchainLineLengthRangeMeanErrorStdDevMedianMinMaxRatioRatioSDGen 0Gen 1Allocated
ReadLineJob-FHQAYYm[ 0, 0]38.20 μs0.079 μs0.074 μs38.17 μs38.10 μs38.34 μs1.000.000.1528-3 KB
ReadLineJob-XIARQDpr[ 0, 0]38.18 μs0.054 μs0.051 μs38.18 μs38.11 μs38.26 μs1.000.000.1524-3 KB
ReadLineAsyncJob-FHQAYYm[ 0, 0]154.39 μs0.871 μs0.815 μs154.32 μs153.22 μs155.90 μs1.000.0034.9265-579 KB
ReadLineAsyncJob-XIARQDpr[ 0, 0]156.00 μs1.474 μs1.306 μs155.75 μs153.04 μs158.65 μs1.010.0135.2723-579 KB
ReadLineJob-FHQAYYm[ 0, 1024]11.39 μs0.086 μs0.081 μs11.34 μs11.29 μs11.56 μs1.000.003.74550.045161 KB
ReadLineJob-XIARQDpr[ 0, 1024]11.24 μs0.027 μs0.024 μs11.23 μs11.22 μs11.28 μs0.990.013.70570.045261 KB
ReadLineAsyncJob-FHQAYYm[ 0, 1024]15.46 μs0.472 μs0.543 μs15.64 μs14.03 μs16.09 μs1.000.003.88280.062664 KB
ReadLineAsyncJob-XIARQDpr[ 0, 1024]14.36 μs0.755 μs0.870 μs14.15 μs12.73 μs15.95 μs0.930.073.86540.059564 KB
ReadLineJob-FHQAYYm[ 1, 1]46.99 μs0.203 μs0.170 μs46.94 μs46.79 μs47.33 μs1.000.008.0706-133 KB
ReadLineJob-XIARQDpr[ 1, 1]46.76 μs0.140 μs0.131 μs46.72 μs46.60 μs47.00 μs1.000.008.0706-133 KB
ReadLineAsyncJob-FHQAYYm[ 1, 1]129.58 μs1.331 μs1.245 μs129.34 μs127.84 μs131.65 μs1.000.0031.2500-517 KB
ReadLineAsyncJob-XIARQDpr[ 1, 1]128.40 μs0.953 μs0.892 μs128.38 μs126.73 μs129.96 μs0.990.0131.5041-517 KB
ReadLineJob-FHQAYYm[ 1, 8]40.11 μs0.704 μs0.588 μs40.35 μs38.99 μs41.15 μs1.000.005.6533-95 KB
ReadLineJob-XIARQDpr[ 1, 8]41.61 μs0.821 μs0.843 μs41.87 μs39.66 μs42.49 μs1.040.025.6966-95 KB
ReadLineAsyncJob-FHQAYYm[ 1, 8]87.17 μs0.843 μs0.748 μs86.84 μs86.54 μs89.10 μs1.000.0017.6105-289 KB
ReadLineAsyncJob-XIARQDpr[ 1, 8]89.34 μs1.754 μs1.950 μs89.13 μs86.42 μs93.05 μs1.030.0217.4581-289 KB
ReadLineJob-FHQAYYm[ 9, 32]19.85 μs0.151 μs0.134 μs19.85 μs19.66 μs20.13 μs1.000.003.2731-54 KB
ReadLineJob-XIARQDpr[ 9, 32]19.72 μs0.098 μs0.092 μs19.74 μs19.49 μs19.81 μs0.990.013.2813-54 KB
ReadLineAsyncJob-FHQAYYm[ 9, 32]33.40 μs0.404 μs0.378 μs33.30 μs32.91 μs34.16 μs1.000.006.4103-105 KB
ReadLineAsyncJob-XIARQDpr[ 9, 32]33.50 μs0.422 μs0.394 μs33.42 μs32.85 μs34.22 μs1.000.026.3559-105 KB
ReadLineJob-FHQAYYm[ 33, 128]13.75 μs0.058 μs0.054 μs13.74 μs13.66 μs13.86 μs1.000.002.7316-45 KB
ReadLineJob-XIARQDpr[ 33, 128]13.75 μs0.040 μs0.037 μs13.76 μs13.68 μs13.81 μs1.000.002.6959-45 KB
ReadLineAsyncJob-FHQAYYm[ 33, 128]20.75 μs0.757 μs0.871 μs20.87 μs19.53 μs21.80 μs1.000.003.5874-59 KB
ReadLineAsyncJob-XIARQDpr[ 33, 128]20.47 μs0.533 μs0.613 μs20.17 μs19.57 μs21.61 μs0.990.043.5737-59 KB
ReadLineJob-FHQAYYm[ 129, 1024]14.13 μs0.603 μs0.695 μs14.46 μs12.14 μs14.65 μs1.000.003.73300.056661 KB
ReadLineJob-XIARQDpr[ 129, 1024]14.32 μs0.599 μs0.690 μs14.57 μs12.39 μs14.89 μs1.020.083.69990.056961 KB
ReadLineAsyncJob-FHQAYYm[ 129, 1024]14.96 μs0.589 μs0.679 μs15.24 μs13.80 μs15.89 μs1.000.003.84110.054963 KB
ReadLineAsyncJob-XIARQDpr[ 129, 1024]14.64 μs0.720 μs0.829 μs13.99 μs13.72 μs15.79 μs0.980.063.81170.056163 KB
ReadLineJob-FHQAYYm[1025, 2048]12.58 μs0.158 μs0.148 μs12.56 μs12.41 μs12.93 μs1.000.005.51770.150591 KB
ReadLineJob-XIARQDpr[1025, 2048]15.48 μs0.794 μs0.914 μs15.79 μs12.37 μs16.09 μs1.220.085.52680.176491 KB
ReadLineAsyncJob-FHQAYYm[1025, 2048]13.30 μs0.072 μs0.067 μs13.29 μs13.22 μs13.44 μs1.000.005.56140.211991 KB
ReadLineAsyncJob-XIARQDpr[1025, 2048]13.40 μs0.139 μs0.124 μs13.38 μs13.27 μs13.71 μs1.010.015.59460.213191 KB

@adamsitnikadamsitnik left a comment

Copy link
Copy Markdown
Member

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 freeto 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

@nietras@adamsitnik