Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mono] Interepreter Performance Regression, 25 benchmarks, -11-49% #45879

Closed
naricc opened this issue Dec 10, 2020 · 8 comments
Closed

[Mono] Interepreter Performance Regression, 25 benchmarks, -11-49% #45879

naricc opened this issue Dec 10, 2020 · 8 comments
Assignees
Labels
area-Codegen-Interpreter-mono runtime-mono specific to the Mono runtime tenet-performance Performance related issue
Milestone

Comments

@naricc
Copy link
Contributor

naricc commented Dec 10, 2020

This is an automatically generated issue from a performance run. Based on the dates of the change, it must have been caused by one of the commits in this range: 4a200d1...c218928

It seems like, from the commits, this is probably a false alarm. However, give then number of benchmarks and magnitude of the change, I want to do a little more digging and am opening this issue. I will assign it to myself for the initial invetigation.

Automatic report below.

<### Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt64

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 21.44 ns 29.57 ns 1.38
ToString 73.13 ns 115.27 ns 1.58
TryFormat 69.83 ns 114.99 ns 1.65
TryFormat 17.47 ns 19.70 ns 1.13

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt64*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt64.ToString(value: 12345)

[19.419 ; 20.041) | @@@@@@
[20.041 ; 20.655) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.655 ; 21.318) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.318 ; 21.957) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.957 ; 22.842) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22.842 ; 23.895) | @@@@
[23.895 ; 24.509) | 
[24.509 ; 25.124) | 
[25.124 ; 25.739) | 
[25.739 ; 26.353) | 
[26.353 ; 26.968) | 
[26.968 ; 27.583) | 
[27.583 ; 28.197) | 
[28.197 ; 28.812) | 
[28.812 ; 30.389) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.ToString(value: 18446744073709551615)

[ 70.329 ;  72.041) | @@
[ 72.041 ;  74.725) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 74.725 ;  76.586) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 76.586 ;  79.270) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 79.270 ;  83.374) | @
[ 83.374 ;  86.058) | 
[ 86.058 ;  88.742) | 
[ 88.742 ;  91.425) | 
[ 91.425 ;  94.109) | 
[ 94.109 ;  96.793) | 
[ 96.793 ;  99.477) | 
[ 99.477 ; 102.161) | 
[102.161 ; 104.845) | 
[104.845 ; 107.529) | 
[107.529 ; 110.212) | 
[110.212 ; 113.425) | 
[113.425 ; 116.109) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.TryFormat(value: 18446744073709551615)

[ 69.653 ;  72.514) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 72.514 ;  74.521) | @@@@@
[ 74.521 ;  77.383) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 77.383 ;  79.143) | @@@@@@@@
[ 79.143 ;  82.004) | 
[ 82.004 ;  84.866) | 
[ 84.866 ;  87.728) | 
[ 87.728 ;  90.589) | 
[ 90.589 ;  93.451) | 
[ 93.451 ;  96.313) | 
[ 96.313 ;  99.174) | 
[ 99.174 ; 102.036) | 
[102.036 ; 104.898) | 
[104.898 ; 107.759) | 
[107.759 ; 110.621) | 
[110.621 ; 113.461) | 
[113.461 ; 116.323) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.TryFormat(value: 0)

[17.305 ; 17.899) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.899 ; 18.515) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.515 ; 19.009) | @@@@@@@@@@@@@@@@@@@@@@
[19.009 ; 19.562) | @@@@@@
[19.562 ; 20.343) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.343 ; 20.824) | @@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int64

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryFormat 24.08 ns 34.27 ns 1.42
TryFormat 76.78 ns 120.19 ns 1.57
ToString 72.95 ns 114.99 ns 1.58
ToString 80.61 ns 121.55 ns 1.51
TryFormat 70.26 ns 117.22 ns 1.67
ToString 24.01 ns 32.26 ns 1.34

graph
graph
graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int64*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int64.TryFormat(value: 12345)

[23.318 ; 23.805) | @@@@@
[23.805 ; 24.462) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.462 ; 25.414) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.414 ; 26.564) | @@@@@@@@@@@@@
[26.564 ; 27.221) | @@@@@@@@@@@
[27.221 ; 28.235) | @
[28.235 ; 28.892) | 
[28.892 ; 29.549) | 
[29.549 ; 30.205) | 
[30.205 ; 30.862) | 
[30.862 ; 31.519) | 
[31.519 ; 32.176) | 
[32.176 ; 32.833) | 
[32.833 ; 33.956) | 
[33.956 ; 34.679) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.TryFormat(value: -9223372036854775808)

[ 73.047 ;  75.562) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 75.562 ;  78.331) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 78.331 ;  81.626) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 81.626 ;  83.399) | @@@@@@
[ 83.399 ;  86.168) | 
[ 86.168 ;  88.938) | 
[ 88.938 ;  91.707) | 
[ 91.707 ;  94.476) | 
[ 94.476 ;  97.245) | 
[ 97.245 ; 100.014) | 
[100.014 ; 102.784) | 
[102.784 ; 105.553) | 
[105.553 ; 108.322) | 
[108.322 ; 111.091) | 
[111.091 ; 113.860) | 
[113.860 ; 116.630) | 
[116.630 ; 118.853) | 
[118.853 ; 121.622) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: 9223372036854775807)

[ 69.258 ;  71.964) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 71.964 ;  74.687) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 74.687 ;  77.474) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 77.474 ;  80.098) | @@@@@@@@@@@@@@@@@@@@@@@@
[ 80.098 ;  81.725) | @@
[ 81.725 ;  84.448) | 
[ 84.448 ;  87.171) | 
[ 87.171 ;  89.894) | 
[ 89.894 ;  92.617) | 
[ 92.617 ;  95.341) | 
[ 95.341 ;  98.064) | 
[ 98.064 ; 100.787) | 
[100.787 ; 103.510) | 
[103.510 ; 106.233) | 
[106.233 ; 108.956) | 
[108.956 ; 111.679) | 
[111.679 ; 114.124) | 
[114.124 ; 116.847) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: -9223372036854775808)

[ 74.078 ;  75.604) | @
[ 75.604 ;  78.253) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 78.253 ;  80.897) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 80.897 ;  83.528) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 83.528 ;  85.275) | @@@@
[ 85.275 ;  87.919) | 
[ 87.919 ;  90.564) | 
[ 90.564 ;  93.208) | 
[ 93.208 ;  95.852) | 
[ 95.852 ;  98.497) | 
[ 98.497 ; 101.141) | 
[101.141 ; 103.785) | 
[103.785 ; 106.430) | 
[106.430 ; 109.074) | 
[109.074 ; 111.718) | 
[111.718 ; 114.362) | 
[114.362 ; 117.007) | 
[117.007 ; 119.683) | 
[119.683 ; 122.327) | @@@@@@@@@@@@

System.Tests.Perf_Int64.TryFormat(value: 9223372036854775807)

[ 66.338 ;  67.873) | @
[ 67.873 ;  70.872) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 70.872 ;  72.661) | @@@@@@@@@
[ 72.661 ;  75.661) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 75.661 ;  77.377) | @
[ 77.377 ;  80.377) | 
[ 80.377 ;  83.376) | 
[ 83.376 ;  86.376) | 
[ 86.376 ;  89.376) | 
[ 89.376 ;  92.375) | 
[ 92.375 ;  95.375) | 
[ 95.375 ;  98.374) | 
[ 98.374 ; 101.374) | 
[101.374 ; 104.374) | 
[104.374 ; 107.373) | 
[107.373 ; 110.373) | 
[110.373 ; 113.372) | 
[113.372 ; 115.143) | 
[115.143 ; 118.142) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: 12345)

[20.239 ; 21.034) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.034 ; 21.704) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.704 ; 22.377) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22.377 ; 23.044) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.044 ; 23.771) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.771 ; 24.453) | @@@@@@@@@@@@@@@@@@
[24.453 ; 25.583) | @@@@@
[25.583 ; 26.253) | 
[26.253 ; 26.923) | 
[26.923 ; 27.593) | 
[27.593 ; 28.263) | 
[28.263 ; 28.933) | 
[28.933 ; 29.765) | 
[29.765 ; 30.506) | @
[30.506 ; 31.176) | @@@@@@
[31.176 ; 31.890) | @@@
[31.890 ; 32.560) | @@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_SByte

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 24.17 ns 28.50 ns 1.18

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_SByte*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_SByte.ToString(value: -128)

[22.370 ; 23.262) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.262 ; 24.172) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.172 ; 24.898) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.898 ; 25.892) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.892 ; 26.783) | @@@@@@@@@@@@@@@@
[26.783 ; 27.716) | @@@@@@@@@
[27.716 ; 28.749) | @@@
[28.749 ; 29.775) | @

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Double

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 223.23 ns 238.67 ns 1.07
ToStringWithCultureInfo 351.30 ns 387.82 ns 1.10
ToStringWithFormat 229.54 ns 243.83 ns 1.06
ToStringWithFormat 235.80 ns 265.25 ns 1.12
ToStringWithFormat 298.91 ns 342.91 ns 1.15
ToStringWithFormat 356.90 ns 392.90 ns 1.10
ToString 351.41 ns 388.40 ns 1.11
ToStringWithFormat 304.41 ns 345.56 ns 1.14
ToStringWithFormat 239.59 ns 266.04 ns 1.11
ToStringWithFormat 227.70 ns 243.33 ns 1.07

graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Double*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Double.ToString(value: 12345)

[219.593 ; 225.550) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[225.550 ; 231.285) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[231.285 ; 241.375) | @@@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithCultureInfo(value: -1.7976931348623157E+308, culture: zh)

[340.037 ; 352.036) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[352.036 ; 361.814) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[361.814 ; 374.027) | @@@@@@@@@@@@@@@
[374.027 ; 382.095) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[382.095 ; 391.724) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 12345, format: "G")

[223.276 ; 230.734) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.734 ; 237.355) | @@@@@@@@@@@@@@@@@
[237.355 ; 248.215) | @@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 1.7976931348623157E+308, format: "E")

[232.917 ; 238.890) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[238.890 ; 246.070) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[246.070 ; 252.252) | @@@@@@@
[252.252 ; 265.469) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 1.7976931348623157E+308, format: "G17")

[294.740 ; 303.326) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[303.326 ; 312.055) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[312.055 ; 322.943) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[322.943 ; 333.835) | @@@@@@@@@@@@
[333.835 ; 347.721) | @@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "G")

[345.083 ; 357.097) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[357.097 ; 370.597) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[370.597 ; 383.170) | @@@@@@@@@@@@@@@@@@@
[383.170 ; 398.797) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Double.ToString(value: -1.7976931348623157E+308)

[340.354 ; 350.494) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[350.494 ; 358.285) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[358.285 ; 370.117) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[370.117 ; 381.465) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[381.465 ; 390.136) | @@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "G17")

[297.068 ; 305.767) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[305.767 ; 314.437) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[314.437 ; 325.150) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[325.150 ; 335.767) | @@@@@@@@@@@
[335.767 ; 351.151) | @@@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "E")

[236.995 ; 245.160) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[245.160 ; 252.025) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[252.025 ; 257.642) | 
[257.642 ; 268.051) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 12345, format: "R")

[224.126 ; 230.043) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.043 ; 235.786) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[235.786 ; 245.250) | @@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int16

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 26.66 ns 36.41 ns 1.37
ToString 17.29 ns 27.40 ns 1.58

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int16*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int16.ToString(value: -32768)

[25.316 ; 25.984) | @@@@@@@@@@@@
[25.984 ; 26.706) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[26.706 ; 27.326) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.326 ; 27.921) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.921 ; 28.517) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[28.517 ; 29.333) | @@@@@@@@@@@@@@@@@@
[29.333 ; 29.934) | @@@@@
[29.934 ; 31.134) | @@@@@@@@@@@@@@
[31.134 ; 32.324) | 
[32.324 ; 33.514) | 
[33.514 ; 34.600) | 
[34.600 ; 35.820) | @@@@@@@@@@@
[35.820 ; 37.006) | @@

System.Tests.Perf_Int16.ToString(value: 32767)

[16.021 ; 16.630) | @@@@@@@@@@@@@
[16.630 ; 17.338) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.338 ; 18.223) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.223 ; 19.121) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.121 ; 20.031) | @@@@@@@@@@@@@@@@@@@
[20.031 ; 20.739) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.739 ; 21.546) | @@@@
[21.546 ; 22.254) | 
[22.254 ; 22.963) | 
[22.963 ; 23.672) | 
[23.672 ; 24.380) | 
[24.380 ; 25.089) | 
[25.089 ; 25.797) | 
[25.797 ; 26.506) | 
[26.506 ; 26.983) | 
[26.983 ; 27.691) | @@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt16

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 16.44 ns 26.66 ns 1.62
ToString 16.08 ns 27.03 ns 1.68

Related Issue on x64 Windows

[Perf 29%] System.Tests.Perf_UInt16 (2)

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt16*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt16.ToString(value: 12345)

[14.992 ; 15.872) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.872 ; 16.620) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[16.620 ; 17.397) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.397 ; 17.937) | @@@@@@@@@@@@@@@@@
[17.937 ; 18.685) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.685 ; 19.429) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.429 ; 20.179) | @@@@@
[20.179 ; 20.797) | @@
[20.797 ; 21.545) | 
[21.545 ; 22.293) | 
[22.293 ; 23.041) | 
[23.041 ; 23.788) | 
[23.788 ; 24.536) | 
[24.536 ; 25.284) | 
[25.284 ; 26.032) | 
[26.032 ; 26.507) | 
[26.507 ; 27.255) | @@@@@@@@@@@
[27.255 ; 28.253) | @@

System.Tests.Perf_UInt16.ToString(value: 65535)

[14.522 ; 15.227) | @
[15.227 ; 15.882) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.882 ; 16.624) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[16.624 ; 17.413) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.413 ; 17.972) | @@@@@@@@@@@@@@@@@@
[17.972 ; 18.714) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.714 ; 19.747) | @@@@@@@@@@@@@@@@@@@@@
[19.747 ; 20.618) | @@@@@
[20.618 ; 21.160) | 
[21.160 ; 21.902) | @
[21.902 ; 22.643) | 
[22.643 ; 23.384) | 
[23.384 ; 24.126) | 
[24.126 ; 24.867) | 
[24.867 ; 25.609) | 
[25.609 ; 26.065) | 
[26.065 ; 26.628) | @
[26.628 ; 27.370) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Single

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToStringWithCultureInfo 261.63 ns 279.08 ns 1.07
ToString 221.72 ns 241.59 ns 1.09
ToStringWithFormat 221.58 ns 245.57 ns 1.11
ToString 263.87 ns 279.00 ns 1.06

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Single*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Single.ToStringWithCultureInfo(value: 3.4028235E+38, culture: zh)

[257.931 ; 266.499) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[266.499 ; 273.881) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[273.881 ; 282.604) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Single.ToString(value: 12345)

[219.745 ; 224.267) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[224.267 ; 229.974) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[229.974 ; 234.690) | @
[234.690 ; 242.165) | @@@@@@@@@@@@@

System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "E")

[216.837 ; 223.888) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[223.888 ; 232.200) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[232.200 ; 241.257) | @@@@@@@@@@@@@@@@@@@@@@@@@
[241.257 ; 246.354) | @@

System.Tests.Perf_Single.ToString(value: 3.4028235E+38)

[258.407 ; 266.512) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[266.512 ; 275.405) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[275.405 ; 286.205) | @@@@@@@@@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int32

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryFormat 34.29 ns 58.08 ns 1.69
ToString 27.42 ns 49.66 ns 1.81
ToString 19.10 ns 27.66 ns 1.45
ToString 35.76 ns 56.38 ns 1.58

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int32*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int32.TryFormat(value: -2147483648)

[33.723 ; 35.225) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[35.225 ; 36.834) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.834 ; 38.326) | @@@@@@@@@@@@@@@@@@@@@@@
[38.326 ; 39.382) | @
[39.382 ; 40.884) | 
[40.884 ; 42.385) | 
[42.385 ; 43.887) | 
[43.887 ; 45.389) | 
[45.389 ; 46.891) | 
[46.891 ; 48.393) | 
[48.393 ; 49.894) | 
[49.894 ; 51.396) | 
[51.396 ; 52.898) | 
[52.898 ; 54.400) | 
[54.400 ; 55.902) | 
[55.902 ; 57.443) | 
[57.443 ; 58.945) | @@@@@@@@@@@@@

System.Tests.Perf_Int32.ToString(value: 2147483647)

[23.058 ; 24.829) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.829 ; 26.048) | @@@@@@@@@@@@@@@@@@
[26.048 ; 27.819) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.819 ; 29.819) | @@@@@@@@@@@@@@
[29.819 ; 31.590) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[31.590 ; 33.361) | 
[33.361 ; 35.133) | 
[35.133 ; 36.904) | 
[36.904 ; 38.676) | 
[38.676 ; 40.447) | 
[40.447 ; 42.218) | 
[42.218 ; 43.990) | 
[43.990 ; 45.761) | 
[45.761 ; 47.532) | 
[47.532 ; 48.347) | 
[48.347 ; 50.119) | @@@@@@@@@@@@@

System.Tests.Perf_Int32.ToString(value: 12345)

[16.533 ; 17.294) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.294 ; 18.100) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.100 ; 18.995) | @@@@@@@@@@@@@@@@@
[18.995 ; 19.755) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.755 ; 20.773) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.773 ; 21.390) | @@@@@@@
[21.390 ; 22.150) | 
[22.150 ; 22.910) | 
[22.910 ; 23.671) | 
[23.671 ; 24.431) | 
[24.431 ; 25.191) | 
[25.191 ; 25.952) | 
[25.952 ; 26.712) | 
[26.712 ; 27.165) | 
[27.165 ; 27.925) | @@@@@@@@@@@
[27.925 ; 28.663) | @

System.Tests.Perf_Int32.ToString(value: -2147483648)

[28.973 ; 30.444) | @
[30.444 ; 32.094) | @
[32.094 ; 33.396) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.396 ; 34.868) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[34.868 ; 36.359) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.359 ; 37.343) | @@@@@@
[37.343 ; 38.814) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[38.814 ; 39.901) | @@@@@@@@@@@@@@@@@@@@@@@
[39.901 ; 41.373) | 
[41.373 ; 42.844) | 
[42.844 ; 44.316) | 
[44.316 ; 45.787) | 
[45.787 ; 47.259) | 
[47.259 ; 48.730) | 
[48.730 ; 50.202) | 
[50.202 ; 51.673) | 
[51.673 ; 53.145) | 
[53.145 ; 54.616) | 
[54.616 ; 55.596) | 
[55.596 ; 57.068) | @@@@@@@@@@@
[57.068 ; 58.233) | @

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt32

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 24.01 ns 48.87 ns 2.04

Related Issue on x64 Windows

[Perf -11%] System.Tests.Perf_UInt32.TryParseHex

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt32*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt32.ToString(value: 4294967295)

[21.605 ; 22.516) | @@@@@@@@@
[22.516 ; 24.108) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.108 ; 25.680) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.680 ; 27.271) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.271 ; 29.263) | @@@@@@@@@@@@@@@@@@@@
[29.263 ; 30.855) | 
[30.855 ; 32.446) | 
[32.446 ; 34.038) | 
[34.038 ; 35.629) | 
[35.629 ; 37.221) | 
[37.221 ; 38.812) | 
[38.812 ; 40.404) | 
[40.404 ; 41.995) | 
[41.995 ; 43.587) | 
[43.587 ; 45.178) | 
[45.178 ; 46.770) | 
[46.770 ; 48.050) | 
[48.050 ; 49.923) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Byte

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 14.35 ns 19.35 ns 1.35

Related Issue on x64 Windows

[Perf 46%] System.Tests.Perf_Byte.ToString

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Byte*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Byte.ToString(value: 255)

[12.602 ; 12.998) | @@@@@@@@@@@@@
[12.998 ; 13.625) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[13.625 ; 14.022) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.022 ; 14.536) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.536 ; 14.895) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.895 ; 15.291) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.291 ; 15.703) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.703 ; 16.080) | @@@@@@@@
[16.080 ; 16.477) | @@
[16.477 ; 16.873) | 
[16.873 ; 17.269) | 
[17.269 ; 17.665) | 
[17.665 ; 18.062) | 
[18.062 ; 18.479) | 
[18.479 ; 18.896) | @@@
[18.896 ; 20.072) | @@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Buffers.Text.Tests.Utf8FormatterTests

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
FormatterDouble 449.42 ns 482.16 ns 1.07
FormatterDouble 456.49 ns 489.54 ns 1.07

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Buffers.Text.Tests.Utf8FormatterTests*'

.

Payloads

Baseline
Compare

Histogram

System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDouble(value: 1.7976931348623157E+308)

[449.063 ; 464.619) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[464.619 ; 477.644) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[477.644 ; 497.412) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDouble(value: -1.7976931348623157E+308)

[454.057 ; 468.344) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[468.344 ; 482.133) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[482.133 ; 500.492) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Perf_Convert

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ChangeType 35.98 ns 41.25 ns 1.15

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Perf_Convert*'

.

Payloads

Baseline
Compare

Histogram

System.Perf_Convert.ChangeType

[31.261 ; 32.405) | @@@@@@@@@@@@@@@@@@@@@@@@
[32.405 ; 33.167) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.167 ; 33.938) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.938 ; 35.292) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[35.292 ; 36.073) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.073 ; 37.060) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[37.060 ; 38.436) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[38.436 ; 39.853) | @@@
[39.853 ; 40.736) | @@@
[40.736 ; 41.605) | @@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in PerfLabTests.LowLevelPerf

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IntegerFormatting 2.49 ms 4.94 ms 1.98

Related Issue on x64 Windows

[Perf 22%] PerfLabTests.LowLevelPerf.InterfaceInterfaceMethodLongHierarchy

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'PerfLabTests.LowLevelPerf*'

.

Payloads

Baseline
Compare

Histogram

PerfLabTests.LowLevelPerf.IntegerFormatting

[2317423.599 ; 2426565.379) | @@@
[2426565.379 ; 2581444.807) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2581444.807 ; 2696963.186) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2696963.186 ; 2851842.613) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2851842.613 ; 2941854.873) | @@@@@@
[2941854.873 ; 3096734.300) | @@@@@@@@@@@@@@@@
[3096734.300 ; 3251613.727) | 
[3251613.727 ; 3406493.155) | 
[3406493.155 ; 3561372.582) | 
[3561372.582 ; 3716252.009) | 
[3716252.009 ; 3871131.436) | 
[3871131.436 ; 4026010.863) | 
[4026010.863 ; 4180890.290) | 
[4180890.290 ; 4335769.718) | 
[4335769.718 ; 4490649.145) | 
[4490649.145 ; 4645528.572) | 
[4645528.572 ; 4800407.999) | 
[4800407.999 ; 4896662.591) | 
[4896662.591 ; 5051542.018) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@naricc naricc added the tenet-performance Performance related issue label Dec 10, 2020
@naricc naricc self-assigned this Dec 10, 2020
@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Dec 10, 2020
@naricc naricc added runtime-mono specific to the Mono runtime area-Codegen-Interpreter-mono and removed untriaged New issue has not been triaged by the area owner labels Dec 10, 2020
@ghost
Copy link

ghost commented Dec 10, 2020

Tagging subscribers to this area: @BrzVlad
See info in area-owners.md if you want to be subscribed.

Issue Details

This is an automatically generated issue from a performance run. Based on the dates of the change, it must have been caused by one of the commits in this range: 4a200d1...c218928

It seems like, from the commits, this is probably a false alarm. However, give then number of benchmarks and magnitude of the change, I want to do a little more digging and am opening this issue. I will assign it to myself for the initial invetigation.

Automatic report below.

<### Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt64

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 21.44 ns 29.57 ns 1.38
ToString 73.13 ns 115.27 ns 1.58
TryFormat 69.83 ns 114.99 ns 1.65
TryFormat 17.47 ns 19.70 ns 1.13

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt64*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt64.ToString(value: 12345)

[19.419 ; 20.041) | @@@@@@
[20.041 ; 20.655) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.655 ; 21.318) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.318 ; 21.957) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.957 ; 22.842) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22.842 ; 23.895) | @@@@
[23.895 ; 24.509) | 
[24.509 ; 25.124) | 
[25.124 ; 25.739) | 
[25.739 ; 26.353) | 
[26.353 ; 26.968) | 
[26.968 ; 27.583) | 
[27.583 ; 28.197) | 
[28.197 ; 28.812) | 
[28.812 ; 30.389) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.ToString(value: 18446744073709551615)

[ 70.329 ;  72.041) | @@
[ 72.041 ;  74.725) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 74.725 ;  76.586) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 76.586 ;  79.270) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 79.270 ;  83.374) | @
[ 83.374 ;  86.058) | 
[ 86.058 ;  88.742) | 
[ 88.742 ;  91.425) | 
[ 91.425 ;  94.109) | 
[ 94.109 ;  96.793) | 
[ 96.793 ;  99.477) | 
[ 99.477 ; 102.161) | 
[102.161 ; 104.845) | 
[104.845 ; 107.529) | 
[107.529 ; 110.212) | 
[110.212 ; 113.425) | 
[113.425 ; 116.109) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.TryFormat(value: 18446744073709551615)

[ 69.653 ;  72.514) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 72.514 ;  74.521) | @@@@@
[ 74.521 ;  77.383) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 77.383 ;  79.143) | @@@@@@@@
[ 79.143 ;  82.004) | 
[ 82.004 ;  84.866) | 
[ 84.866 ;  87.728) | 
[ 87.728 ;  90.589) | 
[ 90.589 ;  93.451) | 
[ 93.451 ;  96.313) | 
[ 96.313 ;  99.174) | 
[ 99.174 ; 102.036) | 
[102.036 ; 104.898) | 
[104.898 ; 107.759) | 
[107.759 ; 110.621) | 
[110.621 ; 113.461) | 
[113.461 ; 116.323) | @@@@@@@@@@@@@

System.Tests.Perf_UInt64.TryFormat(value: 0)

[17.305 ; 17.899) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.899 ; 18.515) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.515 ; 19.009) | @@@@@@@@@@@@@@@@@@@@@@
[19.009 ; 19.562) | @@@@@@
[19.562 ; 20.343) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.343 ; 20.824) | @@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int64

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryFormat 24.08 ns 34.27 ns 1.42
TryFormat 76.78 ns 120.19 ns 1.57
ToString 72.95 ns 114.99 ns 1.58
ToString 80.61 ns 121.55 ns 1.51
TryFormat 70.26 ns 117.22 ns 1.67
ToString 24.01 ns 32.26 ns 1.34

graph
graph
graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int64*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int64.TryFormat(value: 12345)

[23.318 ; 23.805) | @@@@@
[23.805 ; 24.462) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.462 ; 25.414) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.414 ; 26.564) | @@@@@@@@@@@@@
[26.564 ; 27.221) | @@@@@@@@@@@
[27.221 ; 28.235) | @
[28.235 ; 28.892) | 
[28.892 ; 29.549) | 
[29.549 ; 30.205) | 
[30.205 ; 30.862) | 
[30.862 ; 31.519) | 
[31.519 ; 32.176) | 
[32.176 ; 32.833) | 
[32.833 ; 33.956) | 
[33.956 ; 34.679) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.TryFormat(value: -9223372036854775808)

[ 73.047 ;  75.562) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 75.562 ;  78.331) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 78.331 ;  81.626) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 81.626 ;  83.399) | @@@@@@
[ 83.399 ;  86.168) | 
[ 86.168 ;  88.938) | 
[ 88.938 ;  91.707) | 
[ 91.707 ;  94.476) | 
[ 94.476 ;  97.245) | 
[ 97.245 ; 100.014) | 
[100.014 ; 102.784) | 
[102.784 ; 105.553) | 
[105.553 ; 108.322) | 
[108.322 ; 111.091) | 
[111.091 ; 113.860) | 
[113.860 ; 116.630) | 
[116.630 ; 118.853) | 
[118.853 ; 121.622) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: 9223372036854775807)

[ 69.258 ;  71.964) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 71.964 ;  74.687) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 74.687 ;  77.474) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 77.474 ;  80.098) | @@@@@@@@@@@@@@@@@@@@@@@@
[ 80.098 ;  81.725) | @@
[ 81.725 ;  84.448) | 
[ 84.448 ;  87.171) | 
[ 87.171 ;  89.894) | 
[ 89.894 ;  92.617) | 
[ 92.617 ;  95.341) | 
[ 95.341 ;  98.064) | 
[ 98.064 ; 100.787) | 
[100.787 ; 103.510) | 
[103.510 ; 106.233) | 
[106.233 ; 108.956) | 
[108.956 ; 111.679) | 
[111.679 ; 114.124) | 
[114.124 ; 116.847) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: -9223372036854775808)

[ 74.078 ;  75.604) | @
[ 75.604 ;  78.253) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 78.253 ;  80.897) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 80.897 ;  83.528) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 83.528 ;  85.275) | @@@@
[ 85.275 ;  87.919) | 
[ 87.919 ;  90.564) | 
[ 90.564 ;  93.208) | 
[ 93.208 ;  95.852) | 
[ 95.852 ;  98.497) | 
[ 98.497 ; 101.141) | 
[101.141 ; 103.785) | 
[103.785 ; 106.430) | 
[106.430 ; 109.074) | 
[109.074 ; 111.718) | 
[111.718 ; 114.362) | 
[114.362 ; 117.007) | 
[117.007 ; 119.683) | 
[119.683 ; 122.327) | @@@@@@@@@@@@

System.Tests.Perf_Int64.TryFormat(value: 9223372036854775807)

[ 66.338 ;  67.873) | @
[ 67.873 ;  70.872) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 70.872 ;  72.661) | @@@@@@@@@
[ 72.661 ;  75.661) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 75.661 ;  77.377) | @
[ 77.377 ;  80.377) | 
[ 80.377 ;  83.376) | 
[ 83.376 ;  86.376) | 
[ 86.376 ;  89.376) | 
[ 89.376 ;  92.375) | 
[ 92.375 ;  95.375) | 
[ 95.375 ;  98.374) | 
[ 98.374 ; 101.374) | 
[101.374 ; 104.374) | 
[104.374 ; 107.373) | 
[107.373 ; 110.373) | 
[110.373 ; 113.372) | 
[113.372 ; 115.143) | 
[115.143 ; 118.142) | @@@@@@@@@@@@@

System.Tests.Perf_Int64.ToString(value: 12345)

[20.239 ; 21.034) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.034 ; 21.704) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[21.704 ; 22.377) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22.377 ; 23.044) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.044 ; 23.771) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.771 ; 24.453) | @@@@@@@@@@@@@@@@@@
[24.453 ; 25.583) | @@@@@
[25.583 ; 26.253) | 
[26.253 ; 26.923) | 
[26.923 ; 27.593) | 
[27.593 ; 28.263) | 
[28.263 ; 28.933) | 
[28.933 ; 29.765) | 
[29.765 ; 30.506) | @
[30.506 ; 31.176) | @@@@@@
[31.176 ; 31.890) | @@@
[31.890 ; 32.560) | @@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_SByte

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 24.17 ns 28.50 ns 1.18

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_SByte*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_SByte.ToString(value: -128)

[22.370 ; 23.262) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[23.262 ; 24.172) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.172 ; 24.898) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.898 ; 25.892) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.892 ; 26.783) | @@@@@@@@@@@@@@@@
[26.783 ; 27.716) | @@@@@@@@@
[27.716 ; 28.749) | @@@
[28.749 ; 29.775) | @

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Double

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 223.23 ns 238.67 ns 1.07
ToStringWithCultureInfo 351.30 ns 387.82 ns 1.10
ToStringWithFormat 229.54 ns 243.83 ns 1.06
ToStringWithFormat 235.80 ns 265.25 ns 1.12
ToStringWithFormat 298.91 ns 342.91 ns 1.15
ToStringWithFormat 356.90 ns 392.90 ns 1.10
ToString 351.41 ns 388.40 ns 1.11
ToStringWithFormat 304.41 ns 345.56 ns 1.14
ToStringWithFormat 239.59 ns 266.04 ns 1.11
ToStringWithFormat 227.70 ns 243.33 ns 1.07

graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Double*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Double.ToString(value: 12345)

[219.593 ; 225.550) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[225.550 ; 231.285) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[231.285 ; 241.375) | @@@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithCultureInfo(value: -1.7976931348623157E+308, culture: zh)

[340.037 ; 352.036) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[352.036 ; 361.814) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[361.814 ; 374.027) | @@@@@@@@@@@@@@@
[374.027 ; 382.095) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[382.095 ; 391.724) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 12345, format: "G")

[223.276 ; 230.734) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.734 ; 237.355) | @@@@@@@@@@@@@@@@@
[237.355 ; 248.215) | @@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 1.7976931348623157E+308, format: "E")

[232.917 ; 238.890) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[238.890 ; 246.070) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[246.070 ; 252.252) | @@@@@@@
[252.252 ; 265.469) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 1.7976931348623157E+308, format: "G17")

[294.740 ; 303.326) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[303.326 ; 312.055) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[312.055 ; 322.943) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[322.943 ; 333.835) | @@@@@@@@@@@@
[333.835 ; 347.721) | @@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "G")

[345.083 ; 357.097) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[357.097 ; 370.597) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[370.597 ; 383.170) | @@@@@@@@@@@@@@@@@@@
[383.170 ; 398.797) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Double.ToString(value: -1.7976931348623157E+308)

[340.354 ; 350.494) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[350.494 ; 358.285) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[358.285 ; 370.117) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[370.117 ; 381.465) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[381.465 ; 390.136) | @@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "G17")

[297.068 ; 305.767) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[305.767 ; 314.437) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[314.437 ; 325.150) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[325.150 ; 335.767) | @@@@@@@@@@@
[335.767 ; 351.151) | @@@@

System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "E")

[236.995 ; 245.160) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[245.160 ; 252.025) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[252.025 ; 257.642) | 
[257.642 ; 268.051) | @@@@@@@@@@@@@

System.Tests.Perf_Double.ToStringWithFormat(value: 12345, format: "R")

[224.126 ; 230.043) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.043 ; 235.786) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[235.786 ; 245.250) | @@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int16

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 26.66 ns 36.41 ns 1.37
ToString 17.29 ns 27.40 ns 1.58

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int16*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int16.ToString(value: -32768)

[25.316 ; 25.984) | @@@@@@@@@@@@
[25.984 ; 26.706) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[26.706 ; 27.326) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.326 ; 27.921) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.921 ; 28.517) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[28.517 ; 29.333) | @@@@@@@@@@@@@@@@@@
[29.333 ; 29.934) | @@@@@
[29.934 ; 31.134) | @@@@@@@@@@@@@@
[31.134 ; 32.324) | 
[32.324 ; 33.514) | 
[33.514 ; 34.600) | 
[34.600 ; 35.820) | @@@@@@@@@@@
[35.820 ; 37.006) | @@

System.Tests.Perf_Int16.ToString(value: 32767)

[16.021 ; 16.630) | @@@@@@@@@@@@@
[16.630 ; 17.338) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.338 ; 18.223) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.223 ; 19.121) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.121 ; 20.031) | @@@@@@@@@@@@@@@@@@@
[20.031 ; 20.739) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.739 ; 21.546) | @@@@
[21.546 ; 22.254) | 
[22.254 ; 22.963) | 
[22.963 ; 23.672) | 
[23.672 ; 24.380) | 
[24.380 ; 25.089) | 
[25.089 ; 25.797) | 
[25.797 ; 26.506) | 
[26.506 ; 26.983) | 
[26.983 ; 27.691) | @@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt16

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 16.44 ns 26.66 ns 1.62
ToString 16.08 ns 27.03 ns 1.68

Related Issue on x64 Windows

[Perf 29%] System.Tests.Perf_UInt16 (2)

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt16*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt16.ToString(value: 12345)

[14.992 ; 15.872) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.872 ; 16.620) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[16.620 ; 17.397) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.397 ; 17.937) | @@@@@@@@@@@@@@@@@
[17.937 ; 18.685) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.685 ; 19.429) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.429 ; 20.179) | @@@@@
[20.179 ; 20.797) | @@
[20.797 ; 21.545) | 
[21.545 ; 22.293) | 
[22.293 ; 23.041) | 
[23.041 ; 23.788) | 
[23.788 ; 24.536) | 
[24.536 ; 25.284) | 
[25.284 ; 26.032) | 
[26.032 ; 26.507) | 
[26.507 ; 27.255) | @@@@@@@@@@@
[27.255 ; 28.253) | @@

System.Tests.Perf_UInt16.ToString(value: 65535)

[14.522 ; 15.227) | @
[15.227 ; 15.882) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.882 ; 16.624) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[16.624 ; 17.413) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.413 ; 17.972) | @@@@@@@@@@@@@@@@@@
[17.972 ; 18.714) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.714 ; 19.747) | @@@@@@@@@@@@@@@@@@@@@
[19.747 ; 20.618) | @@@@@
[20.618 ; 21.160) | 
[21.160 ; 21.902) | @
[21.902 ; 22.643) | 
[22.643 ; 23.384) | 
[23.384 ; 24.126) | 
[24.126 ; 24.867) | 
[24.867 ; 25.609) | 
[25.609 ; 26.065) | 
[26.065 ; 26.628) | @
[26.628 ; 27.370) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Single

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToStringWithCultureInfo 261.63 ns 279.08 ns 1.07
ToString 221.72 ns 241.59 ns 1.09
ToStringWithFormat 221.58 ns 245.57 ns 1.11
ToString 263.87 ns 279.00 ns 1.06

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Single*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Single.ToStringWithCultureInfo(value: 3.4028235E+38, culture: zh)

[257.931 ; 266.499) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[266.499 ; 273.881) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[273.881 ; 282.604) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_Single.ToString(value: 12345)

[219.745 ; 224.267) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[224.267 ; 229.974) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[229.974 ; 234.690) | @
[234.690 ; 242.165) | @@@@@@@@@@@@@

System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "E")

[216.837 ; 223.888) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[223.888 ; 232.200) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[232.200 ; 241.257) | @@@@@@@@@@@@@@@@@@@@@@@@@
[241.257 ; 246.354) | @@

System.Tests.Perf_Single.ToString(value: 3.4028235E+38)

[258.407 ; 266.512) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[266.512 ; 275.405) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[275.405 ; 286.205) | @@@@@@@@@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Int32

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryFormat 34.29 ns 58.08 ns 1.69
ToString 27.42 ns 49.66 ns 1.81
ToString 19.10 ns 27.66 ns 1.45
ToString 35.76 ns 56.38 ns 1.58

graph
graph
graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Int32*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Int32.TryFormat(value: -2147483648)

[33.723 ; 35.225) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[35.225 ; 36.834) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.834 ; 38.326) | @@@@@@@@@@@@@@@@@@@@@@@
[38.326 ; 39.382) | @
[39.382 ; 40.884) | 
[40.884 ; 42.385) | 
[42.385 ; 43.887) | 
[43.887 ; 45.389) | 
[45.389 ; 46.891) | 
[46.891 ; 48.393) | 
[48.393 ; 49.894) | 
[49.894 ; 51.396) | 
[51.396 ; 52.898) | 
[52.898 ; 54.400) | 
[54.400 ; 55.902) | 
[55.902 ; 57.443) | 
[57.443 ; 58.945) | @@@@@@@@@@@@@

System.Tests.Perf_Int32.ToString(value: 2147483647)

[23.058 ; 24.829) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.829 ; 26.048) | @@@@@@@@@@@@@@@@@@
[26.048 ; 27.819) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.819 ; 29.819) | @@@@@@@@@@@@@@
[29.819 ; 31.590) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[31.590 ; 33.361) | 
[33.361 ; 35.133) | 
[35.133 ; 36.904) | 
[36.904 ; 38.676) | 
[38.676 ; 40.447) | 
[40.447 ; 42.218) | 
[42.218 ; 43.990) | 
[43.990 ; 45.761) | 
[45.761 ; 47.532) | 
[47.532 ; 48.347) | 
[48.347 ; 50.119) | @@@@@@@@@@@@@

System.Tests.Perf_Int32.ToString(value: 12345)

[16.533 ; 17.294) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[17.294 ; 18.100) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[18.100 ; 18.995) | @@@@@@@@@@@@@@@@@
[18.995 ; 19.755) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[19.755 ; 20.773) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20.773 ; 21.390) | @@@@@@@
[21.390 ; 22.150) | 
[22.150 ; 22.910) | 
[22.910 ; 23.671) | 
[23.671 ; 24.431) | 
[24.431 ; 25.191) | 
[25.191 ; 25.952) | 
[25.952 ; 26.712) | 
[26.712 ; 27.165) | 
[27.165 ; 27.925) | @@@@@@@@@@@
[27.925 ; 28.663) | @

System.Tests.Perf_Int32.ToString(value: -2147483648)

[28.973 ; 30.444) | @
[30.444 ; 32.094) | @
[32.094 ; 33.396) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.396 ; 34.868) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[34.868 ; 36.359) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.359 ; 37.343) | @@@@@@
[37.343 ; 38.814) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[38.814 ; 39.901) | @@@@@@@@@@@@@@@@@@@@@@@
[39.901 ; 41.373) | 
[41.373 ; 42.844) | 
[42.844 ; 44.316) | 
[44.316 ; 45.787) | 
[45.787 ; 47.259) | 
[47.259 ; 48.730) | 
[48.730 ; 50.202) | 
[50.202 ; 51.673) | 
[51.673 ; 53.145) | 
[53.145 ; 54.616) | 
[54.616 ; 55.596) | 
[55.596 ; 57.068) | @@@@@@@@@@@
[57.068 ; 58.233) | @

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_UInt32

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 24.01 ns 48.87 ns 2.04

Related Issue on x64 Windows

[Perf -11%] System.Tests.Perf_UInt32.TryParseHex

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_UInt32*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt32.ToString(value: 4294967295)

[21.605 ; 22.516) | @@@@@@@@@
[22.516 ; 24.108) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[24.108 ; 25.680) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[25.680 ; 27.271) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[27.271 ; 29.263) | @@@@@@@@@@@@@@@@@@@@
[29.263 ; 30.855) | 
[30.855 ; 32.446) | 
[32.446 ; 34.038) | 
[34.038 ; 35.629) | 
[35.629 ; 37.221) | 
[37.221 ; 38.812) | 
[38.812 ; 40.404) | 
[40.404 ; 41.995) | 
[41.995 ; 43.587) | 
[43.587 ; 45.178) | 
[45.178 ; 46.770) | 
[46.770 ; 48.050) | 
[48.050 ; 49.923) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Tests.Perf_Byte

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString 14.35 ns 19.35 ns 1.35

Related Issue on x64 Windows

[Perf 46%] System.Tests.Perf_Byte.ToString

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Tests.Perf_Byte*'

.

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Byte.ToString(value: 255)

[12.602 ; 12.998) | @@@@@@@@@@@@@
[12.998 ; 13.625) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[13.625 ; 14.022) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.022 ; 14.536) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.536 ; 14.895) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[14.895 ; 15.291) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.291 ; 15.703) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[15.703 ; 16.080) | @@@@@@@@
[16.080 ; 16.477) | @@
[16.477 ; 16.873) | 
[16.873 ; 17.269) | 
[17.269 ; 17.665) | 
[17.665 ; 18.062) | 
[18.062 ; 18.479) | 
[18.479 ; 18.896) | @@@
[18.896 ; 20.072) | @@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Buffers.Text.Tests.Utf8FormatterTests

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
FormatterDouble 449.42 ns 482.16 ns 1.07
FormatterDouble 456.49 ns 489.54 ns 1.07

graph
graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Buffers.Text.Tests.Utf8FormatterTests*'

.

Payloads

Baseline
Compare

Histogram

System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDouble(value: 1.7976931348623157E+308)

[449.063 ; 464.619) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[464.619 ; 477.644) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[477.644 ; 497.412) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDouble(value: -1.7976931348623157E+308)

[454.057 ; 468.344) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[468.344 ; 482.133) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[482.133 ; 500.492) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in System.Perf_Convert

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ChangeType 35.98 ns 41.25 ns 1.15

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Perf_Convert*'

.

Payloads

Baseline
Compare

Histogram

System.Perf_Convert.ChangeType

[31.261 ; 32.405) | @@@@@@@@@@@@@@@@@@@@@@@@
[32.405 ; 33.167) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.167 ; 33.938) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[33.938 ; 35.292) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[35.292 ; 36.073) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.073 ; 37.060) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[37.060 ; 38.436) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[38.436 ; 39.853) | @@@
[39.853 ; 40.736) | @@@
[40.736 ; 41.605) | @@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 4a200d18fe9c0d41ecf56ced17ea657fcee2067c
Compare e280e6124ba75f139b71ebb0eb2d33cc3b3843b2

Regressions in PerfLabTests.LowLevelPerf

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IntegerFormatting 2.49 ms 4.94 ms 1.98

Related Issue on x64 Windows

[Perf 22%] PerfLabTests.LowLevelPerf.InterfaceInterfaceMethodLongHierarchy

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'PerfLabTests.LowLevelPerf*'

.

Payloads

Baseline
Compare

Histogram

PerfLabTests.LowLevelPerf.IntegerFormatting

[2317423.599 ; 2426565.379) | @@@
[2426565.379 ; 2581444.807) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2581444.807 ; 2696963.186) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2696963.186 ; 2851842.613) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2851842.613 ; 2941854.873) | @@@@@@
[2941854.873 ; 3096734.300) | @@@@@@@@@@@@@@@@
[3096734.300 ; 3251613.727) | 
[3251613.727 ; 3406493.155) | 
[3406493.155 ; 3561372.582) | 
[3561372.582 ; 3716252.009) | 
[3716252.009 ; 3871131.436) | 
[3871131.436 ; 4026010.863) | 
[4026010.863 ; 4180890.290) | 
[4180890.290 ; 4335769.718) | 
[4335769.718 ; 4490649.145) | 
[4490649.145 ; 4645528.572) | 
[4645528.572 ; 4800407.999) | 
[4800407.999 ; 4896662.591) | 
[4896662.591 ; 5051542.018) | @@@@@@@@@@@@

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Author: naricc
Assignees: naricc
Labels:

area-Codegen-Interpreter-mono, runtime-mono, tenet-performance

Milestone: -

@am11
Copy link
Member

am11 commented Dec 10, 2020

in this range: 4a200d1...c218928

@EgorBo, could it be related to #45074, i.e. interpreter is slower for tuple returns vs. out args?

@EgorBo
Copy link
Member

EgorBo commented Dec 10, 2020

Ah could be, will take a look.

@SamMonoRT
Copy link
Member

@EgorBo @BrzVlad any other insights into these, also @naricc how are we doing on these with Vlad's last PR ?

@naricc
Copy link
Contributor Author

naricc commented Jan 7, 2021

@SamMonoRT The ones that ran are between 10% and 20 % better after Vlad's PR, compared to immediately before.

The absolute numbers look worse compared to what we see here though (both before and after). I am trying to figure out why. @DrewScoggins I am looking at this report generated yesterday, and comparing to some of the numbers I see in this issue. In that report I see System.Tests.Perf_UInt64.ToString(value: 12345) taking 381.04 ns. But in this issue it was 29 ns. Is this a valid comparison to make? I didn't see any subsequent regression issues generated, so I don't know how a dramatic slow down could be missed.

@SamMonoRT
Copy link
Member

@naricc - is this still actionable ? Please close the issue if not.

@SamMonoRT SamMonoRT added this to the 6.0.0 milestone Jun 14, 2021
@BrzVlad
Copy link
Member

BrzVlad commented Jul 1, 2021

Not sure if there is any point in keeping this issue alive. The change in the BCL was done and doesn't look like it will be reverted. In order to the recover the performance we would need to implement a basic struct promotion in the interpreter. Keeping track of this feature in the broader issue #47520

@BrzVlad BrzVlad closed this as completed Jul 1, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jul 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Codegen-Interpreter-mono runtime-mono specific to the Mono runtime tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

6 participants