[Bug libstdc++/103755] {has,use}_facet() and iostream constructor performance

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Dec 17 21:05:24 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103755

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #3)
> Created attachment 52025 [details]
> Alternative implementation v2
> 
> The diagnostic regression is easy to fix with a static assertion before
> calling __try_use_facet.

Although that causes errors for certain uses of streams without including
<locale>, specifically when building the library.

Also I forgot to say that I can still reproduce approx. 3x speedup using my
patch.

Before:

BM_sstream_construct        288 ns          287 ns      2525913
BM_fstream_construct        319 ns          318 ns      2204065

After:

BM_sstream_construct       99.5 ns         99.1 ns      6512679
BM_fstream_construct        108 ns          107 ns      6536463


More information about the Gcc-bugs mailing list