Skip to content

Fix regression in IsPrefix / IsSuffix benchmarks - #61935

Merged
elinor-fung merged 1 commit into
dotnet:mainfrom
elinor-fung:fix61821
Nov 22, 2021
Merged

Fix regression in IsPrefix / IsSuffix benchmarks#61935
elinor-fung merged 1 commit into
dotnet:mainfrom
elinor-fung:fix61821

Conversation

@elinor-fung

Copy link
Copy Markdown
Member

The regressed scenarios actually did not call into any p/invokes - which is actually why they are the ones that regressed. With the switch to GeneratedDllImport in #61640, the generated stub and blittable p/invoke for Interop.Globalization.EndsWith and Interop.Globalization.StartsWith ended up inlined into their callers, resulting in a p/invoke frame being initialized even in the cases that did not use the p/invoke.

This PR marks those two functions as no inlining and gets us back to where it was before #61640. The issue was filed for arm64, but it is the same problem on x64 (just by less). Ran on Windows x64:

MethodToolchainOptionsMeanErrorStdDevMedianMinMaxRatioMannWhitney(3%)RatioSDAllocated
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(, IgnoreCase, False)20.330 ns0.0381 ns0.0337 ns20.323 ns20.288 ns20.402 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(, IgnoreCase, False)14.640 ns0.0245 ns0.0229 ns14.631 ns14.612 ns14.680 ns0.72Faster0.00-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(, None, False)20.900 ns0.0631 ns0.0590 ns20.923 ns20.815 ns20.974 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(, None, False)14.654 ns0.0207 ns0.0193 ns14.656 ns14.627 ns14.688 ns0.70Faster0.00-
Results for System.Globalization.Tests.StringSearch*
MethodToolchainOptionsMeanErrorStdDevMedianMinMaxRatioMannWhitney(3%)RatioSDAllocated
IsPrefix_FirstHalf\runtime-main\corerun.exe(, IgnoreCase, False)194.393 ns1.3521 ns1.1986 ns194.433 ns192.894 ns196.665 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(, IgnoreCase, False)187.368 ns0.4431 ns0.4145 ns187.334 ns186.846 ns188.286 ns0.96Faster0.01-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(, IgnoreCase, False)20.330 ns0.0381 ns0.0337 ns20.323 ns20.288 ns20.402 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(, IgnoreCase, False)14.640 ns0.0245 ns0.0229 ns14.631 ns14.612 ns14.680 ns0.72Faster0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(, IgnoreCase, False)212.495 ns0.5216 ns0.4624 ns212.342 ns211.539 ns213.235 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(, IgnoreCase, False)186.362 ns0.1782 ns0.1580 ns186.373 ns186.136 ns186.679 ns0.88Faster0.00-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(, IgnoreCase, False)20.855 ns0.1086 ns0.1016 ns20.872 ns20.712 ns20.993 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(, IgnoreCase, False)15.177 ns0.0142 ns0.0119 ns15.175 ns15.155 ns15.195 ns0.73Faster0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(, IgnoreCase, False)683.095 ns6.6165 ns5.8653 ns683.481 ns675.406 ns692.925 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(, IgnoreCase, False)677.060 ns2.8404 ns2.6570 ns675.815 ns673.879 ns681.470 ns0.99Same0.01-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(, IgnoreCase, False)676.341 ns1.3916 ns1.3017 ns675.693 ns674.882 ns679.335 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(, IgnoreCase, False)677.288 ns1.5849 ns1.4050 ns676.964 ns675.575 ns680.218 ns1.00Same0.00-
IsPrefix_FirstHalf\runtime-main\corerun.exe(, IgnoreCase, True)3,574.746 ns11.8865 ns11.1187 ns3,572.241 ns3,561.510 ns3,592.023 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(, IgnoreCase, True)3,606.154 ns42.8753 ns38.0078 ns3,582.626 ns3,570.643 ns3,685.335 ns1.01Same0.01-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(, IgnoreCase, True)831.642 ns5.8088 ns5.4335 ns832.867 ns825.062 ns843.031 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(, IgnoreCase, True)843.770 ns5.7553 ns5.1020 ns844.892 ns838.090 ns852.988 ns1.01Same0.01-
IsSuffix_SecondHalf\runtime-main\corerun.exe(, IgnoreCase, True)7,316.780 ns139.9483 ns137.4480 ns7,347.592 ns7,165.856 ns7,600.568 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(, IgnoreCase, True)7,254.119 ns132.5820 ns117.5305 ns7,186.973 ns7,170.234 ns7,512.003 ns0.99Same0.02-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(, IgnoreCase, True)1,283.598 ns16.2192 ns15.1715 ns1,282.635 ns1,266.832 ns1,314.400 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(, IgnoreCase, True)1,293.430 ns13.4541 ns12.5850 ns1,295.049 ns1,278.562 ns1,313.944 ns1.01Same0.02-
IndexOf_Word_NotFound\runtime-main\corerun.exe(, IgnoreCase, True)8,773.427 ns279.7391 ns310.9293 ns8,638.881 ns8,434.559 ns9,548.658 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(, IgnoreCase, True)8,461.640 ns74.8071 ns62.4673 ns8,438.167 ns8,415.068 ns8,603.207 ns0.96Same0.04-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(, IgnoreCase, True)15,207.016 ns179.3193 ns167.7354 ns15,227.226 ns15,029.975 ns15,596.782 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(, IgnoreCase, True)15,570.916 ns485.0580 ns558.5935 ns15,352.230 ns15,004.047 ns16,719.308 ns1.03Same0.04-
IsPrefix_FirstHalf\runtime-main\corerun.exe(, None, False)179.165 ns0.2829 ns0.2508 ns179.078 ns178.810 ns179.718 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(, None, False)172.511 ns0.3044 ns0.2542 ns172.420 ns172.233 ns173.160 ns0.96Faster0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(, None, False)20.470 ns0.0406 ns0.0379 ns20.456 ns20.433 ns20.544 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(, None, False)14.067 ns0.0302 ns0.0252 ns14.064 ns14.034 ns14.127 ns0.69Faster0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(, None, False)179.038 ns0.1133 ns0.1005 ns179.023 ns178.892 ns179.222 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(, None, False)177.152 ns2.7482 ns2.4362 ns176.097 ns173.877 ns181.647 ns0.99Same0.01-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(, None, False)20.900 ns0.0631 ns0.0590 ns20.923 ns20.815 ns20.974 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(, None, False)14.654 ns0.0207 ns0.0193 ns14.656 ns14.627 ns14.688 ns0.70Faster0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(, None, False)512.179 ns0.6999 ns0.6546 ns512.310 ns510.890 ns513.264 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(, None, False)511.446 ns0.6401 ns0.5675 ns511.430 ns510.760 ns512.647 ns1.00Same0.00-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(, None, False)511.673 ns0.5447 ns0.4253 ns511.737 ns511.087 ns512.298 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(, None, False)510.973 ns0.3723 ns0.3300 ns510.965 ns510.408 ns511.557 ns1.00Same0.00-
IsPrefix_FirstHalf\runtime-main\corerun.exe(, None, True)3,561.368 ns11.1167 ns8.6792 ns3,560.335 ns3,545.554 ns3,576.012 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(, None, True)3,573.755 ns11.8553 ns9.8997 ns3,571.414 ns3,555.116 ns3,589.746 ns1.00Same0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(, None, True)836.304 ns16.2111 ns16.6476 ns828.583 ns818.665 ns870.598 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(, None, True)836.214 ns6.1372 ns5.7407 ns836.250 ns830.162 ns847.423 ns1.00Same0.02-
IsSuffix_SecondHalf\runtime-main\corerun.exe(, None, True)7,315.706 ns109.3084 ns96.8990 ns7,328.551 ns7,174.069 ns7,484.585 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(, None, True)7,364.889 ns140.4755 ns156.1381 ns7,354.172 ns7,194.659 ns7,784.378 ns1.01Same0.03-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(, None, True)1,258.321 ns9.4250 ns8.3550 ns1,259.702 ns1,244.440 ns1,275.853 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(, None, True)1,286.283 ns20.5681 ns19.2394 ns1,280.850 ns1,269.117 ns1,326.702 ns1.02Same0.02-
IndexOf_Word_NotFound\runtime-main\corerun.exe(, None, True)8,455.165 ns92.8074 ns86.8121 ns8,413.614 ns8,336.519 ns8,562.197 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(, None, True)8,482.582 ns126.5231 ns118.3498 ns8,410.619 ns8,344.823 ns8,709.746 ns1.00Same0.02-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(, None, True)14,979.847 ns222.2341 ns207.8779 ns14,855.549 ns14,835.173 ns15,422.322 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(, None, True)15,040.241 ns264.0188 ns246.9634 ns14,904.880 ns14,823.384 ns15,583.415 ns1.00Same0.02-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, IgnoreCase, False)192.585 ns0.1521 ns0.1348 ns192.561 ns192.417 ns192.819 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, IgnoreCase, False)187.522 ns0.4867 ns0.4314 ns187.440 ns186.928 ns188.315 ns0.97Same0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, IgnoreCase, False)20.737 ns0.0201 ns0.0188 ns20.733 ns20.700 ns20.770 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, IgnoreCase, False)16.728 ns0.0171 ns0.0160 ns16.727 ns16.701 ns16.755 ns0.81Faster0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, IgnoreCase, False)212.396 ns0.4381 ns0.4098 ns212.551 ns211.829 ns213.160 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, IgnoreCase, False)186.205 ns0.1774 ns0.1572 ns186.196 ns185.992 ns186.514 ns0.88Faster0.00-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, IgnoreCase, False)21.096 ns0.0295 ns0.0247 ns21.092 ns21.062 ns21.145 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, IgnoreCase, False)15.166 ns0.0207 ns0.0193 ns15.160 ns15.144 ns15.204 ns0.72Faster0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreCase, False)680.742 ns2.1943 ns1.8323 ns681.131 ns676.315 ns682.695 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreCase, False)678.559 ns3.1456 ns2.9424 ns679.790 ns674.605 ns682.468 ns1.00Same0.01-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreCase, False)682.174 ns12.0477 ns11.2694 ns677.122 ns674.863 ns712.852 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreCase, False)676.452 ns1.2954 ns1.1483 ns676.133 ns674.985 ns678.514 ns0.99Same0.02-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, IgnoreCase, True)3,576.194 ns12.0959 ns10.7227 ns3,575.706 ns3,555.812 ns3,596.613 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, IgnoreCase, True)3,592.460 ns18.3768 ns17.1897 ns3,589.975 ns3,566.716 ns3,624.217 ns1.00Same0.01-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, IgnoreCase, True)828.166 ns5.7399 ns5.0883 ns826.757 ns822.918 ns838.492 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, IgnoreCase, True)845.816 ns8.0837 ns7.5615 ns845.998 ns835.937 ns860.546 ns1.02Same0.01-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, IgnoreCase, True)7,259.500 ns111.4437 ns104.2445 ns7,195.555 ns7,174.710 ns7,483.724 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, IgnoreCase, True)7,286.106 ns122.3634 ns114.4588 ns7,206.645 ns7,182.287 ns7,543.353 ns1.00Same0.02-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, IgnoreCase, True)1,283.746 ns17.0649 ns15.1275 ns1,282.431 ns1,265.446 ns1,316.937 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, IgnoreCase, True)1,294.374 ns12.4748 ns10.4170 ns1,294.731 ns1,275.163 ns1,310.448 ns1.01Same0.01-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreCase, True)8,503.652 ns124.1596 ns116.1390 ns8,436.175 ns8,389.601 ns8,725.877 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreCase, True)8,542.614 ns147.0320 ns137.5338 ns8,569.570 ns8,388.089 ns8,733.448 ns1.00Same0.03-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreCase, True)15,322.394 ns291.4048 ns286.1985 ns15,246.212 ns15,039.573 ns15,999.584 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreCase, True)15,237.165 ns201.1182 ns188.1261 ns15,309.976 ns15,007.710 ns15,562.260 ns0.99Same0.02-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)179.540 ns0.4334 ns0.4054 ns179.514 ns178.844 ns180.104 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)172.465 ns0.1713 ns0.1431 ns172.513 ns172.236 ns172.662 ns0.96Faster0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)21.164 ns0.0309 ns0.0258 ns21.161 ns21.127 ns21.224 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)14.107 ns0.0112 ns0.0093 ns14.108 ns14.088 ns14.121 ns0.67Faster0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)179.054 ns0.1735 ns0.1355 ns179.047 ns178.856 ns179.258 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)173.421 ns0.2946 ns0.2611 ns173.384 ns173.046 ns173.792 ns0.97Faster0.00-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)21.016 ns0.0240 ns0.0224 ns21.015 ns20.978 ns21.054 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)14.633 ns0.0144 ns0.0120 ns14.635 ns14.610 ns14.653 ns0.70Faster0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)511.326 ns0.5471 ns0.4568 ns511.221 ns510.841 ns512.187 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)511.568 ns0.4104 ns0.3839 ns511.650 ns510.801 ns512.183 ns1.00Same0.00-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreNonSpace, False)510.292 ns0.5253 ns0.4657 ns510.307 ns509.613 ns511.210 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreNonSpace, False)510.559 ns1.0415 ns0.9232 ns510.191 ns509.614 ns512.566 ns1.00Same0.00-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)15,049.017 ns178.5435 ns139.3950 ns15,010.773 ns14,773.380 ns15,267.396 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)14,952.763 ns225.1827 ns188.0377 ns14,897.511 ns14,754.595 ns15,442.490 ns0.99Same0.02-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)28,861.033 ns348.3812 ns308.8308 ns28,871.024 ns28,428.530 ns29,483.380 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)28,520.656 ns373.1350 ns330.7744 ns28,526.900 ns28,094.998 ns29,199.485 ns0.99Same0.02-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)17,399.451 ns331.6047 ns325.6802 ns17,459.873 ns16,991.082 ns18,167.631 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)17,147.848 ns178.1021 ns166.5968 ns17,036.906 ns17,010.630 ns17,541.983 ns0.99Same0.02-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)34,479.412 ns688.3063 ns643.8421 ns34,431.875 ns33,891.087 ns35,775.543 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)34,001.561 ns418.7672 ns391.7151 ns33,774.973 ns33,636.382 ns34,834.348 ns0.99Same0.02-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)8,389.964 ns167.6830 ns164.6872 ns8,330.942 ns8,234.367 ns8,781.727 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)8,505.469 ns111.7649 ns104.5450 ns8,531.724 ns8,382.644 ns8,709.147 ns1.01Same0.03-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, IgnoreSymbols, False)14,401.381 ns244.5161 ns228.7205 ns14,361.703 ns14,049.500 ns14,684.529 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, IgnoreSymbols, False)14,317.445 ns207.3344 ns193.9408 ns14,363.585 ns14,079.350 ns14,797.215 ns0.99Same0.03-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, None, False)179.241 ns0.2914 ns0.2583 ns179.232 ns178.774 ns179.685 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, None, False)172.406 ns0.1697 ns0.1587 ns172.341 ns172.215 ns172.731 ns0.96Faster0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, None, False)21.047 ns0.0326 ns0.0289 ns21.044 ns21.004 ns21.095 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, None, False)14.070 ns0.0148 ns0.0124 ns14.063 ns14.054 ns14.088 ns0.67Faster0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, None, False)179.240 ns0.2008 ns0.1677 ns179.279 ns178.974 ns179.471 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, None, False)173.412 ns0.3247 ns0.3037 ns173.320 ns173.014 ns174.135 ns0.97Faster0.00-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, None, False)21.093 ns0.0224 ns0.0210 ns21.094 ns21.048 ns21.131 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, None, False)14.624 ns0.0083 ns0.0073 ns14.624 ns14.608 ns14.637 ns0.69Faster0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, None, False)511.314 ns0.4328 ns0.3837 ns511.239 ns510.843 ns512.278 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, None, False)512.347 ns0.8399 ns0.7856 ns512.110 ns511.462 ns513.988 ns1.00Same0.00-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, None, False)511.230 ns0.5743 ns0.4796 ns511.283 ns510.486 ns511.914 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, None, False)511.460 ns1.1063 ns0.8637 ns511.641 ns510.216 ns513.079 ns1.00Same0.00-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, None, True)3,558.037 ns7.2155 ns6.7494 ns3,558.462 ns3,546.353 ns3,573.106 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, None, True)3,562.930 ns12.2524 ns11.4609 ns3,566.237 ns3,543.664 ns3,581.075 ns1.00Same0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, None, True)823.498 ns4.0542 ns3.7923 ns821.472 ns819.544 ns829.810 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, None, True)835.843 ns4.5527 ns3.8017 ns836.496 ns829.226 ns840.791 ns1.01Same0.01-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, None, True)7,292.268 ns138.9155 ns148.6380 ns7,244.774 ns7,151.938 ns7,630.487 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, None, True)7,264.698 ns116.6418 ns97.4012 ns7,197.776 ns7,173.885 ns7,480.546 ns1.00Same0.03-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, None, True)1,278.144 ns13.2719 ns12.4146 ns1,279.447 ns1,263.650 ns1,300.658 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, None, True)1,277.128 ns12.4016 ns10.3559 ns1,272.206 ns1,266.068 ns1,302.867 ns1.00Same0.01-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, None, True)8,507.300 ns160.7743 ns150.3884 ns8,430.914 ns8,340.245 ns8,732.739 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, None, True)8,467.653 ns140.3933 ns124.4550 ns8,403.869 ns8,342.895 ns8,718.556 ns0.99Same0.02-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, None, True)15,108.783 ns251.6039 ns235.3505 ns15,132.306 ns14,835.211 ns15,468.869 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, None, True)15,098.139 ns230.9072 ns215.9907 ns15,135.245 ns14,839.090 ns15,455.216 ns1.00Same0.02-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, Ordinal, False)9.582 ns0.0096 ns0.0080 ns9.584 ns9.568 ns9.598 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, Ordinal, False)9.644 ns0.0116 ns0.0103 ns9.643 ns9.631 ns9.670 ns1.01Same0.00-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, Ordinal, False)6.084 ns0.0077 ns0.0068 ns6.086 ns6.072 ns6.097 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, Ordinal, False)6.078 ns0.0055 ns0.0046 ns6.078 ns6.071 ns6.084 ns1.00Same0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, Ordinal, False)17.249 ns2.2067 ns2.5412 ns18.065 ns9.814 ns18.113 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, Ordinal, False)18.054 ns0.0372 ns0.0348 ns18.050 ns17.972 ns18.114 ns1.11Same0.30-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, Ordinal, False)13.305 ns0.0195 ns0.0183 ns13.308 ns13.281 ns13.343 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, Ordinal, False)13.424 ns0.1992 ns0.1863 ns13.296 ns13.260 ns13.735 ns1.01Same0.01-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, Ordinal, False)37.618 ns0.1202 ns0.0938 ns37.619 ns37.457 ns37.740 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, Ordinal, False)37.573 ns0.2010 ns0.1880 ns37.595 ns37.194 ns37.877 ns1.00Same0.01-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, Ordinal, False)81.877 ns0.0999 ns0.0935 ns81.905 ns81.744 ns82.018 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, Ordinal, False)81.882 ns0.1464 ns0.1298 ns81.839 ns81.746 ns82.100 ns1.00Same0.00-
IsPrefix_FirstHalf\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)72.843 ns1.2101 ns1.3451 ns72.285 ns71.624 ns75.902 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)71.640 ns0.0566 ns0.0529 ns71.635 ns71.550 ns71.753 ns0.98Same0.02-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)7.175 ns0.0235 ns0.0219 ns7.170 ns7.134 ns7.216 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)7.154 ns0.0095 ns0.0074 ns7.154 ns7.143 ns7.168 ns1.00Same0.00-
IsSuffix_SecondHalf\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)72.566 ns0.4840 ns0.4527 ns72.474 ns72.005 ns73.403 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)71.945 ns0.0950 ns0.0742 ns71.951 ns71.815 ns72.094 ns0.99Same0.01-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)125.910 ns0.1770 ns0.1478 ns125.962 ns125.625 ns126.143 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)128.797 ns0.1568 ns0.1467 ns128.799 ns128.548 ns129.077 ns1.02Same0.00-
IndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)592.862 ns2.8643 ns2.6793 ns592.444 ns587.524 ns596.828 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)589.886 ns2.7130 ns2.2655 ns590.434 ns586.501 ns593.437 ns0.99Same0.01-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(en-US, OrdinalIgnoreCase, False)709.160 ns5.2179 ns4.8808 ns706.741 ns703.768 ns720.306 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(en-US, OrdinalIgnoreCase, False)697.776 ns5.1470 ns4.8145 ns697.268 ns686.084 ns704.137 ns0.98Same0.01-
IsPrefix_FirstHalf\runtime-main\corerun.exe(pl-PL, None, False)5,819.969 ns63.6196 ns56.3971 ns5,794.798 ns5,749.032 ns5,952.656 ns1.00Base0.00-
IsPrefix_FirstHalf\runtime-pr\corerun.exe(pl-PL, None, False)5,890.738 ns80.4689 ns71.3336 ns5,890.526 ns5,794.861 ns6,041.379 ns1.01Same0.02-
IsPrefix_DifferentFirstChar\runtime-main\corerun.exe(pl-PL, None, False)829.587 ns5.5416 ns5.1837 ns827.746 ns824.117 ns836.308 ns1.00Base0.00-
IsPrefix_DifferentFirstChar\runtime-pr\corerun.exe(pl-PL, None, False)835.576 ns6.6494 ns5.8945 ns832.525 ns830.824 ns851.214 ns1.01Same0.01-
IsSuffix_SecondHalf\runtime-main\corerun.exe(pl-PL, None, False)8,275.919 ns138.3208 ns129.3853 ns8,291.450 ns8,115.938 ns8,452.845 ns1.00Base0.00-
IsSuffix_SecondHalf\runtime-pr\corerun.exe(pl-PL, None, False)8,263.575 ns115.9370 ns108.4475 ns8,286.026 ns8,108.706 ns8,444.095 ns1.00Same0.02-
IsSuffix_DifferentLastChar\runtime-main\corerun.exe(pl-PL, None, False)1,205.716 ns16.2325 ns15.1839 ns1,204.418 ns1,187.402 ns1,232.607 ns1.00Base0.00-
IsSuffix_DifferentLastChar\runtime-pr\corerun.exe(pl-PL, None, False)1,188.148 ns11.7662 ns11.0061 ns1,191.183 ns1,176.049 ns1,208.433 ns0.99Same0.02-
IndexOf_Word_NotFound\runtime-main\corerun.exe(pl-PL, None, False)11,777.601 ns124.9907 ns110.8010 ns11,829.684 ns11,589.825 ns11,891.676 ns1.00Base0.00-
IndexOf_Word_NotFound\runtime-pr\corerun.exe(pl-PL, None, False)11,623.384 ns188.3069 ns176.1424 ns11,641.224 ns11,397.813 ns12,049.652 ns0.98Same0.01-
LastIndexOf_Word_NotFound\runtime-main\corerun.exe(pl-PL, None, False)16,668.686 ns223.1986 ns208.7801 ns16,725.532 ns16,434.023 ns17,046.911 ns1.00Base0.00-
LastIndexOf_Word_NotFound\runtime-pr\corerun.exe(pl-PL, None, False)17,070.973 ns174.7257 ns154.8898 ns17,117.887 ns16,837.473 ns17,399.187 ns1.02Same0.02-

Fixes#61821

@AaronRobinsonMSFT@jkoritzinsky

@danmoseley

Copy link
Copy Markdown
Contributor

I'm not usually a fan of putting bug ID's into the product code, but will we ever know to remove these when the JIT is improved?

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@danmoseley This is part of an existing JIT issue we are tracking to improve this scenario—#61821 (comment). We could add a comment too I guess.

@danmoseley

Copy link
Copy Markdown
Contributor

@danmoseley This is part of an existing JIT issue we are tracking to improve this scenario—#61821 (comment). We could add a comment too I guess.

Ah a note in an active issue works too.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Perf] Changes at 11/17/2021 1:35:01 AM

4 participants

@elinor-fung@danmoseley@AaronRobinsonMSFT@jkoritzinsky