-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Performance regression since 10.0.0 #3674
Comments
Could be related to FP changes. Have you tried bisecting? |
No, I haven't. I didn't even know that this git command exists but it looks extremely nice. |
So according to |
I got that simplified. The regression mostly comes from this: std::string buf(100000, '1');
fmt::ostream out = fmt::output_file("123");
out.print("{}", buf); On my computer: e2f6d76 : 301µs Also on Godbolt: |
Fixed in d9063ba. Thanks @breyerml for reporting and bisecting and @sunmy2019 for reducing the repro! |
Oh, I just got it fixed. I proudly opened the page and tried to report it here. Then I saw it fixed, and sadly went away. |
A race condition =) |
We saw a performance regression of a factor of 2-3 when switching from fmt version 8.1.0 to 10.0.0 (also happens with 10.1.1).
I extracted a MWE from our code:
I compiled the above code with g++ 11.4.0:
cmake -DCMAKE_BUILD_TYPE=Release .. && make
On our machine (AMD EPYC 7763 64-Core Processor) I get the following runtimes for the MWE writing to a SSD:
8.1.0: 4067ms
9.1.0: 4093ms
10.0.0: 12954ms
10.1.1: 13009ms
Am I missing something or shouldn't there be such a loss in performance simply by using a newer {fmt} version?
The text was updated successfully, but these errors were encountered: