You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#1834 should have fixed this issue, I'm confirming now.
After #1834 we no longer call __std_get_cvt (which is basically a reimplementation of _Getcvt that takes a code page number as an argument) at all when formatting wide strings or when formatting narrow strings if the execution character set is UTF-8.
We could still probably do a bit better for other cases by caching the result of __std_get_cvt at a higher level to reduce the total number of calls. My attempts to do so in the initial implementation were foiled by needing the info both while parsing format strings and while formatting; there was no good central place to cache and too little time for large-scale restructuring.
that's after #1834, and I've confirmed in benchmarks that no calls to locale getting functions occur (it was a sampling benchmark, but with how long those calls take I don't think that's a problem)
The performance of
format
degraded after #1815. Profiling shows that_Getcvt()
is consuming a significant part of the CPU time.We could investigate:
_Getcvt()
when unnecessary (when the format string is interpreted as UTF-8 or UTF-16)._Getcvt()
.Before #1815: 179 ns
After #1815: 241 ns
The text was updated successfully, but these errors were encountered: