Skip to content

Various bug fixes and added contrived benchmarks. #9

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

Merged
merged 1 commit into from
Sep 14, 2021

Conversation

Alexhuszagh
Copy link
Contributor

@Alexhuszagh Alexhuszagh commented Aug 22, 2021

Contrived benchmarks aim to test edge-cases that invoke specific
algoritgms or worst-case possibilities for float parsing algorithms.
These are specific strings for near-halfway cases, with varying number
of digits, forcing use of the slowest algoritms.

  • Updated abseil version to fix bug with missing.
  • Change repository to the new home, fastfloat/fast_float.
  • Avoid printing bug repeatedly if the parsed time is 0, and print it only once per test.

These changes are useful to test the changes in fastfloat/fast_float#96. After benchmarking, the new benchmarks significantly outperform strtod in GCC for near-halfway cases with many digits, which (from what I remember) uses gmplib internally, which definitely highlights the improved performance. It also outperforms every other implementation.

Contrived benchmarks aim to test edge-cases that invoke specific
algoritgms or worst-case possibilities for float parsing algorithms.
These are specific strings for near-halfway cases, with varying number
of digits, forcing use of the slowest algoritms.

- Updated abseil version to fix bug with <limits> missing.
- Change repository to the new home, `fastfloat/fast_float`.
- Avoid printing `bug` repeatedly if the parsed time is 0, and print it only once per test.
@lemire
Copy link
Owner

lemire commented Aug 22, 2021

Fantastic work!

@Alexhuszagh
Copy link
Contributor Author

If you do run these benchmarks locally, I do recommend lowering the volume to 5,000-10,000, since some of these benchmarks run at 0.01 Mfloat/s (netlib, 6400 digits for a denormal float), and can take quite a long time at the default number.

@lemire
Copy link
Owner

lemire commented Aug 24, 2021

Ok. I might tweak the benchmark later to make sure it is reasonable.

@lemire
Copy link
Owner

lemire commented Sep 14, 2021

Merging. I will adjust. Great stuff.

@lemire lemire merged commit a2eee6b into lemire:master Sep 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants