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

[Perf -6%] System.Tests.Perf_String.IndexerCheckLengthHoisting #2468

Closed
performanceautofiler bot opened this issue Oct 19, 2020 · 1 comment
Closed

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Oct 19, 2020

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 5a4483eb1c0918542298d1864b7233f962952880
Compare a79df14b3cc62ade39382a6e08d3b25871d8ebb6

Regressions in System.Tests.Perf_String

Benchmark Baseline Test Test/Base Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Replace_Char 234.62 ns 270.25 ns 1.15
Concat_str_str 1.95 μs 2.09 μs 1.07
Format_MultipleArgs 4.10 μs 4.44 μs 1.08
Replace_Char 630.73 ns 744.97 ns 1.18
Replace_Char 297.41 ns 328.33 ns 1.10
IndexerCheckPathLength 1.30 μs 1.43 μs 1.10
ToLowerInvariant 1.85 μs 2.18 μs 1.18
Substring_IntInt 212.72 ns 231.82 ns 1.09
Split 7.70 μs 8.27 μs 1.07
Trim 467.25 ns 512.92 ns 1.10
Trim_CharArr 389.94 ns 429.73 ns 1.10
Concat_str_str_str_str 927.22 ns 992.08 ns 1.07
Concat_str_str_str 2.81 μs 3.02 μs 1.08
Interpolation_MultipleArgs 4.08 μs 4.42 μs 1.08
IndexerCheckLengthHoisting 613.70 ns 869.78 ns 1.42
Replace_Char 92.08 ns 105.98 ns 1.15
ToUpperInvariant 109.42 ns 124.28 ns 1.14
ToUpperInvariant 1.23 μs 1.41 μs 1.15
ToLower 1.91 μs 2.23 μs 1.17
Trim_CharArr 131.42 ns 150.13 ns 1.14
ToUpper 146.89 ns 166.14 ns 1.13
ToLower 153.96 ns 179.72 ns 1.17
Split 465.84 ns 865.14 ns 1.86
ToUpper 1.30 μs 1.46 μs 1.12
Split 467.09 ns 508.12 ns 1.09
IndexerCheckBoundCheckHoist 563.36 ns 748.55 ns 1.33
Concat_str_str_str 696.39 ns 741.57 ns 1.06
IndexOfAny 914.46 ns 1.10 μs 1.20
Trim_CharArr 341.40 ns 370.50 ns 1.09
PadLeft 360.19 ns 417.27 ns 1.16

Related Issue on x64 Windows

[Perf -15%] System.Tests.Perf_String.Replace_String

Related Issue on x64 Windows

[Perf -6%] System.Tests.Perf_String.Concat_str_str_str

Related Issue on x86 Windows

[Perf -8%] System.Tests.Perf_String.Replace_Char

graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
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_String*'

Histogram

System.Tests.Perf_String.Replace_Char(text: "This is a very nice sentence", oldChar: 'z', newChar: 'y')

[204.994 ; 214.063) | @
[214.063 ; 221.371) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[221.371 ; 230.499) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.499 ; 239.671) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[239.671 ; 249.802) | @@@@@@@@@@@@@@@@@@@@
[249.802 ; 258.805) | @@@@
[258.805 ; 267.512) | @@
[267.512 ; 276.640) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[276.640 ; 286.157) | @@@@@@@@@@@@@@
[286.157 ; 293.111) | @@
[293.111 ; 301.629) | 
[301.629 ; 310.757) | @@@@@@@@@@@@@@@@@
[310.757 ; 321.611) | @@@@
[321.611 ; 330.739) | @@@

System.Tests.Perf_String.Concat_str_str(size: 1000)

[1732.199 ; 1781.027) | @@@@@@@@@@@@@@@
[1781.027 ; 1834.399) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1834.399 ; 1888.748) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1888.748 ; 1943.792) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1943.792 ; 2002.415) | @@@@@@@@@@@@
[2002.415 ; 2055.787) | @@@@@@@@@@@
[2055.787 ; 2106.149) | @@@@@@
[2106.149 ; 2159.520) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2159.520 ; 2209.442) | @@@@@@@@@@@
[2209.442 ; 2262.813) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2262.813 ; 2348.316) | @@@@@@
[2348.316 ; 2403.192) | 
[2403.192 ; 2456.564) | @

System.Tests.Perf_String.Format_MultipleArgs

[3878.365 ; 4018.373) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4018.373 ; 4176.599) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4176.599 ; 4301.466) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4301.466 ; 4437.571) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4437.571 ; 4550.295) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4550.295 ; 4704.874) | @@@@@@@@@@@@@@@@@@@@@@@
[4704.874 ; 4899.862) | @@@@@@@@

System.Tests.Perf_String.Replace_Char(text: "This is a very nice sentence", oldChar: 'i', newChar: 'I')

[595.483 ; 617.689) | @@@@@@@@@@@@@@
[617.689 ; 639.900) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[639.900 ; 653.448) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[653.448 ; 675.660) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[675.660 ; 699.122) | @@@@@@@@@@@
[699.122 ; 732.356) | @@@@@
[732.356 ; 754.568) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[754.568 ; 777.747) | @@@@@@@@
[777.747 ; 797.017) | @
[797.017 ; 819.229) | 
[819.229 ; 848.296) | @
[848.296 ; 870.507) | @@@@@@@@@@@@@@@@@@@@
[870.507 ; 902.896) | @@

System.Tests.Perf_String.Replace_Char(text: "Hello", oldChar: 'l', newChar: '!')

[281.714 ; 288.043) | @
[288.043 ; 300.131) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[300.131 ; 306.461) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[306.461 ; 312.781) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[312.781 ; 322.115) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[322.115 ; 335.065) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[335.065 ; 347.794) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[347.794 ; 361.041) | @@@@@@@@@@@@@@@@@@@@@@@
[361.041 ; 373.109) | @@@@@@@@@@
[373.109 ; 382.877) | @@

System.Tests.Perf_String.IndexerCheckPathLength

[1263.787 ; 1300.391) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1300.391 ; 1352.874) | @@@@@@@@@@@@@@@@
[1352.874 ; 1409.372) | @@@@@@@@
[1409.372 ; 1448.459) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1448.459 ; 1485.063) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1485.063 ; 1523.641) | @@@@@@@@@@@@@
[1523.641 ; 1557.731) | @@
[1557.731 ; 1602.794) | 
[1602.794 ; 1639.398) | @@@
[1639.398 ; 1676.003) | 
[1676.003 ; 1712.607) | 
[1712.607 ; 1749.211) | 
[1749.211 ; 1785.816) | 
[1785.816 ; 1822.420) | 
[1822.420 ; 1859.025) | 
[1859.025 ; 1895.629) | 
[1895.629 ; 1932.234) | 
[1932.234 ; 1968.838) | 
[1968.838 ; 2005.443) | 
[2005.443 ; 2042.047) | 
[2042.047 ; 2078.652) | 
[2078.652 ; 2115.256) | 
[2115.256 ; 2151.861) | 
[2151.861 ; 2188.465) | 
[2188.465 ; 2225.070) | 
[2225.070 ; 2302.867) | @

System.Tests.Perf_String.ToLowerInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")

[1774.507 ; 1816.426) | @@@
[1816.426 ; 1877.753) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1877.753 ; 1939.523) | @@@@@@@@@@@@@@@@@@@@@@@@@@
[1939.523 ; 2033.676) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2033.676 ; 2093.324) | @@@@@@@@@@@@@@@@@@@@
[2093.324 ; 2163.247) | @@@@@
[2163.247 ; 2224.575) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2224.575 ; 2290.281) | @@
[2290.281 ; 2396.510) | @@@@@@
[2396.510 ; 2457.838) | @@@@@@@@@@@@@@@@@@@@@
[2457.838 ; 2524.634) | @@@
[2524.634 ; 2585.962) | @

System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)

[209.331 ; 215.196) | @@@@@@@@@@@@@@@@@
[215.196 ; 223.472) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[223.472 ; 230.690) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[230.690 ; 239.865) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[239.865 ; 246.376) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[246.376 ; 254.738) | @@@@@@@

System.Tests.Perf_String.Split(s: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", arr: [' '], options: None)

[7555.572 ; 7791.642) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[7791.642 ; 8108.841) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[8108.841 ; 8398.170) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[8398.170 ; 8663.186) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[8663.186 ; 8960.118) | @@@@@@@@

System.Tests.Perf_String.Trim(s: " Te st ")

[461.088 ; 474.576) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[474.576 ; 492.564) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[492.564 ; 509.540) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[509.540 ; 521.410) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[521.410 ; 542.618) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[542.618 ; 565.612) | @@@@@@

System.Tests.Perf_String.Trim_CharArr(s: " Te st ", c: [' ', ' '])

[373.540 ; 387.979) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[387.979 ; 396.583) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[396.583 ; 407.878) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[407.878 ; 424.614) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[424.614 ; 433.726) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[433.726 ; 449.742) | @@@@@@@@@@@@@@@@@@@@@@@@@@
[449.742 ; 467.153) | @@@@@

System.Tests.Perf_String.Concat_str_str_str_str(size: 100)

[ 874.826 ;  901.077) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 901.077 ;  922.979) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 922.979 ;  946.496) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 946.496 ;  973.446) | @@@@@@@@@@@@@@@@@@@@@@@
[ 973.446 ;  999.655) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 999.655 ; 1021.557) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1021.557 ; 1043.624) | @@@@@@@@@@@@@@
[1043.624 ; 1085.572) | @@
[1085.572 ; 1110.344) | @@@@@
[1110.344 ; 1158.664) | @@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_String.Concat_str_str_str(size: 1000)

[2494.493 ; 2568.317) | @@@@@@@@@@@
[2568.317 ; 2648.893) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2648.893 ; 2730.431) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2730.431 ; 2819.612) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2819.612 ; 2912.401) | @@@@@@@@@
[2912.401 ; 2992.976) | @@@@@@@
[2992.976 ; 3132.132) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[3132.132 ; 3202.574) | @@
[3202.574 ; 3283.150) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[3283.150 ; 3361.357) | @@@
[3361.357 ; 3460.223) | @
[3460.223 ; 3555.070) | @@

System.Tests.Perf_String.Interpolation_MultipleArgs(c: '1', s: "Foo")

[3897.313 ; 4033.342) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4033.342 ; 4192.369) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4192.369 ; 4310.794) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4310.794 ; 4476.469) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4476.469 ; 4579.472) | @@@@@@@@@@@@@@@@@@@@@@@@@@
[4579.472 ; 4823.414) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_String.IndexerCheckLengthHoisting

[604.853 ; 631.387) | @@@@@@@@@@@@@@@@@@@@@
[631.387 ; 663.838) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[663.838 ; 677.867) | @
[677.867 ; 704.401) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[704.401 ; 731.238) | 
[731.238 ; 757.772) | @@
[757.772 ; 788.037) | @
[788.037 ; 814.571) | 
[814.571 ; 846.799) | 
[846.799 ; 873.333) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[873.333 ; 891.962) | @

System.Tests.Perf_String.Replace_Char(text: "Hello", oldChar: 'a', newChar: 'b')

[ 80.261 ;  83.119) | @
[ 83.119 ;  85.433) | @@@@
[ 85.433 ;  87.943) | @@@@@@@@@@@@@@@@@@@@@
[ 87.943 ;  90.674) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 90.674 ;  95.233) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 95.233 ;  98.101) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 98.101 ; 101.846) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[101.846 ; 104.947) | @@@@@@@@@@@@@@@@@@
[104.947 ; 107.678) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[107.678 ; 110.548) | @@@@@@@@@@@@@@@@@@@@@
[110.548 ; 114.915) | @@@@@@@@@
[114.915 ; 118.925) | @@@
[118.925 ; 122.224) | @@@
[122.224 ; 125.706) | @
[125.706 ; 129.055) | @

System.Tests.Perf_String.ToUpperInvariant(s: "TEST")

[ 99.714 ; 101.791) | @
[101.791 ; 104.554) | @@@@@@@@@
[104.554 ; 107.607) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[107.607 ; 110.344) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[110.344 ; 113.397) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[113.397 ; 116.632) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[116.632 ; 119.659) | @@@@@@@@@@@@@@@@@@@
[119.659 ; 122.615) | @@@@@@@@@@@@
[122.615 ; 125.668) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[125.668 ; 128.927) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[128.927 ; 132.450) | @@@@@@@@@@@@
[132.450 ; 136.425) | @@@@@
[136.425 ; 140.593) | @@@@

System.Tests.Perf_String.ToUpperInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")

[1148.945 ; 1183.510) | @@@@@@@@@@@@@@@@@@
[1183.510 ; 1223.024) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1223.024 ; 1264.740) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1264.740 ; 1299.765) | @@@@@@@@
[1299.765 ; 1345.148) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1345.148 ; 1389.999) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1389.999 ; 1429.513) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1429.513 ; 1489.981) | @@@@@@@@@@@
[1489.981 ; 1529.495) | @@
[1529.495 ; 1588.952) | @@@@@@@@@@@@@@@@@@@@
[1588.952 ; 1628.790) | @@@@@@

System.Tests.Perf_String.ToLower(s: "This is a much longer piece of text that might benefit more from vectorization.")

[1827.638 ; 1872.394) | @@@@@@@@@@@@@
[1872.394 ; 1935.153) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1935.153 ; 1993.808) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1993.808 ; 2036.481) | @@@@@@@@@
[2036.481 ; 2099.241) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2099.241 ; 2157.273) | @@@@@@@@@@@@@@@
[2157.273 ; 2213.390) | @@@@@@
[2213.390 ; 2276.149) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[2276.149 ; 2340.198) | @@@
[2340.198 ; 2402.518) | @@
[2402.518 ; 2454.916) | 
[2454.916 ; 2517.676) | @@@@@@@@@@@@@@@@@@@@@@
[2517.676 ; 2581.943) | @@
[2581.943 ; 2644.702) | @
[2644.702 ; 2707.462) | 
[2707.462 ; 2770.221) | 
[2770.221 ; 2879.515) | 
[2879.515 ; 2942.275) | @

System.Tests.Perf_String.Trim_CharArr(s: "Test", c: [' ', ' '])

[127.255 ; 130.734) | @@@@
[130.734 ; 134.628) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[134.628 ; 138.674) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[138.674 ; 142.799) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[142.799 ; 149.200) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[149.200 ; 155.689) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[155.689 ; 159.583) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[159.583 ; 165.054) | @@@@@@@@@@@@@@@@@@@@@@@@@
[165.054 ; 169.300) | @@@@@@@@@@@@@@
[169.300 ; 174.246) | @@@

System.Tests.Perf_String.ToUpper(s: "TEST")

[142.556 ; 145.584) | @@@@@@
[145.584 ; 149.523) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[149.523 ; 155.784) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[155.784 ; 160.870) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[160.870 ; 167.635) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[167.635 ; 171.812) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[171.812 ; 176.385) | @@@@@@@@@@@@@@@@@@
[176.385 ; 180.324) | @@@@@@@@@@@@@@@@
[180.324 ; 184.417) | @@@@@@@@@@@@@@
[184.417 ; 188.722) | @@@@
[188.722 ; 193.225) | @
[193.225 ; 201.104) | @@@@
[201.104 ; 208.982) | 
[208.982 ; 215.709) | @

System.Tests.Perf_String.ToLower(s: "test")

[143.329 ; 147.964) | @@@@@@@@
[147.964 ; 151.925) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[151.925 ; 157.810) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[157.810 ; 161.853) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[161.853 ; 166.175) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[166.175 ; 170.108) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[170.108 ; 177.282) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[177.282 ; 181.401) | @@@@@@@@@@@@@@@@
[181.401 ; 186.170) | @@@@@@@@@@@@@@@@@@@@
[186.170 ; 191.066) | @@@@@
[191.066 ; 196.418) | @@@
[196.418 ; 206.466) | @@@@@

System.Tests.Perf_String.Split(s: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", arr: [' '], options: RemoveEmptyEntries)

[446.918 ; 456.565) | @@@@@@@@@@@@@@@@@@@@@
[456.565 ; 466.595) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[466.595 ; 485.835) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[485.835 ; 496.164) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[496.164 ; 507.157) | @@@@@@@@@@@@@@@@@@@@@@@@@
[507.157 ; 519.087) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[519.087 ; 533.270) | @@@@@@@@@@@@@@@@@@@@@@@@@@@
[533.270 ; 556.005) | @@@@
[556.005 ; 576.064) | 
[576.064 ; 596.124) | 
[596.124 ; 616.184) | 
[616.184 ; 636.244) | 
[636.244 ; 656.304) | 
[656.304 ; 676.363) | 
[676.363 ; 696.423) | 
[696.423 ; 716.483) | 
[716.483 ; 736.543) | 
[736.543 ; 756.602) | 
[756.602 ; 776.662) | 
[776.662 ; 810.962) | @

System.Tests.Perf_String.ToUpper(s: "This is a much longer piece of text that might benefit more from vectorization.")

[1194.415 ; 1232.351) | @@@@@@@@@@@@
[1232.351 ; 1272.269) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1272.269 ; 1313.421) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1313.421 ; 1374.112) | @@@@@@@@@@@@@@@@@@@@@@@@
[1374.112 ; 1414.031) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1414.031 ; 1467.455) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1467.455 ; 1506.508) | @@@@@@@@@@@@@@@@@@@
[1506.508 ; 1536.965) | @
[1536.965 ; 1583.524) | 
[1583.524 ; 1645.706) | @@@@@@@@@@@@@@@@@@@@
[1645.706 ; 1693.895) | @@@@

System.Tests.Perf_String.Split(s: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", arr: [' '], options: None)

[448.377 ; 461.082) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[461.082 ; 471.550) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[471.550 ; 487.840) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[487.840 ; 502.904) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[502.904 ; 523.479) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[523.479 ; 547.660) | @@@@@@@@@@@@@@@@@@@

System.Tests.Perf_String.IndexerCheckBoundCheckHoist

[544.285 ; 556.465) | @@@@@@@@@@@@@@@@@@
[556.465 ; 577.060) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[577.060 ; 604.325) | @@@@@@@@@@@@@@@@@@@@@
[604.325 ; 624.921) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[624.921 ; 640.979) | @@
[640.979 ; 661.575) | 
[661.575 ; 680.792) | 
[680.792 ; 701.388) | @@@
[701.388 ; 732.298) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[732.298 ; 751.009) | @@@@@@@@@@@

System.Tests.Perf_String.Concat_str_str_str(size: 100)

[654.457 ; 674.766) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[674.766 ; 692.690) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[692.690 ; 712.895) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[712.895 ; 731.151) | @@@@@@@@@@@@@@@@@@@@@@@@
[731.151 ; 749.796) | @@@@@@@@@@@@
[749.796 ; 767.719) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[767.719 ; 785.974) | @@@@@@@@@@@@@@@@
[785.974 ; 816.796) | @
[816.796 ; 834.720) | 
[834.720 ; 857.797) | @@@
[857.797 ; 910.194) | @@@@@@@@@@@@@@@@@@@@@

System.Tests.Perf_String.IndexOfAny

[ 814.097 ;  848.826) | @@@@
[ 848.826 ;  872.711) | @@@@@@@@@
[ 872.711 ;  900.236) | @@@@@@@@@@@@@@@@@@@@@@@@
[ 900.236 ;  924.122) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 924.122 ;  948.289) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[ 948.289 ;  979.988) | @@@@@@@@@@@@@@@@@@@@@@
[ 979.988 ; 1003.874) | @@@@
[1003.874 ; 1027.760) | 
[1027.760 ; 1053.551) | 
[1053.551 ; 1093.291) | @@@@@@@@@@@@@@@@@@@@@@@@@
[1093.291 ; 1119.042) | @@@@@@@@@@@@@@@
[1119.042 ; 1150.062) | @@@
[1150.062 ; 1190.626) | @@
[1190.626 ; 1247.495) | @@

System.Tests.Perf_String.Trim_CharArr(s: " Test", c: [' ', ' '])

[333.160 ; 343.655) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[343.655 ; 357.399) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[357.399 ; 365.630) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[365.630 ; 374.958) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[374.958 ; 383.360) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[383.360 ; 398.048) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[398.048 ; 409.586) | @@@@@

System.Tests.Perf_String.PadLeft(n: 18)

[349.265 ; 358.211) | @@@@
[358.211 ; 367.499) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[367.499 ; 377.479) | @@@@@@@@@@@@@@@@@@@@@@@@@@
[377.479 ; 394.297) | @@@@@@@
[394.297 ; 404.358) | @@@@@@@@@@@@@@@@@@@@@
[404.358 ; 413.427) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[413.427 ; 422.715) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[422.715 ; 431.833) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[431.833 ; 442.805) | @@@@@@@@@@@@@@@@@@
[442.805 ; 454.308) | @@@@@@@@@
[454.308 ; 463.597) | @@

Docs

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

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

No branches or pull requests

1 participant