Improve DateTime.ParseExact perf for invariant culture (#82877)
authorStephen Toub <stoub@microsoft.com>
Fri, 3 Mar 2023 02:46:31 +0000 (21:46 -0500)
committerGitHub <noreply@github.com>
Fri, 3 Mar 2023 02:46:31 +0000 (21:46 -0500)
commiteb6b81c7e4ca2e3da36a5c02c42499dc79646255
treeb29cc42d81cfc626cf0ec54017c3ac9db87b5bd5
parent86173c0926a79ebcaa15608dd4e985aea363d383
Improve DateTime.ParseExact perf for invariant culture (#82877)

* Improve DateTime parsing perf for invariant culture

Speed up the handling of ddd, dddd, MMM, and MMMM parts of a date time format string when using the invariant culture, which is very commonly used in parsing.  Today, when one of these is encountered, the relevant array of comparison strings is retrieved from the DateTimeFormatInfo, and each is compared as a prefix against the current position in the input, using a linguistic ignore-case comparison.  But for the invariant culture, we don't need to consult any arrays, and can do the comparison much more quickly.  These parts dominate the processing of a format like that for RFC1123.

* Address PR feedback
src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeFormatInfo.cs
src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs