Skip to content
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

Implement benchmarks #49

Open
pasabanov opened this issue Mar 6, 2025 · 0 comments
Open

Implement benchmarks #49

pasabanov opened this issue Mar 6, 2025 · 0 comments
Assignees
Labels
feature New feature or request

Comments

@pasabanov
Copy link
Member

pasabanov commented Mar 6, 2025

Problem or Motivation

Currently, the library does not include benchmarks, which prevents comparing the performance of different versions of functions as well as different optimization levels.

Solution or Suggestion

It is proposed to create a benches folder in the project root and implement benchmarks there.

Framework Choosing

Below is a comparison table of benchmark frameworks:

Framework Dependencies Header-only User-defined Metrics Support Development/Support
Without framework ✅ None ⚠ Yes, but must be implemented manually ⚠ Depends on the developer
Catch2 ✅ Common for tests and benchmarks ❌ No ❌ No ✅ Actively maintained
Google Benchmark ⚠ 1 ❌ No ✅ Yes ✅ Actively maintained (by a large IT company)
Celero ⚠ 1 ❌ No ⚠ Yes, but with complex syntax ✅ Actively maintained
criterion ⚠ 1 ✅ Yes ❌ No ❌ Not maintained (last update 2020.11.03)
picobench ⚠ 1 ✅ Yes ❌ No ⚠ Not actively maintained (last update 2024.03.06)

Since support for user-defined metrics is critical, the Google Benchmark framework was chosen.

Tasks

    • Implement benchmarks using the Google Benchmark framework and the statistics module in the benches folder.
@pasabanov pasabanov added the feature New feature or request label Mar 6, 2025
@pasabanov pasabanov added this to the First Release Version milestone Mar 6, 2025
@pasabanov pasabanov self-assigned this Mar 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant