-
Notifications
You must be signed in to change notification settings - Fork 4
Refactor benchmarks #363
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
Refactor benchmarks #363
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #363 +/- ##
=======================================
Coverage 82.97% 82.97%
=======================================
Files 50 50
Lines 5057 5057
Branches 573 573
=======================================
Hits 4196 4196
Misses 853 853
Partials 8 8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cppcheck (reported by Codacy) found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR modernizes the benchmarking infrastructure by replacing a custom benchmark submodule with Google Benchmark, consolidating scattered benchmark code into a centralized structure, and improving the build system configuration.
- Removes custom benchmark submodule and old benchmark implementations
- Adopts Google Benchmark framework with standardized benchmark files
- Consolidates CMake configuration with improved build options and CI integration
Reviewed Changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| extern/benchmark | Removed custom benchmark submodule |
| benchmark/CMakeLists.txt | Replaced with unified CMake config using FetchContent for Google Benchmark |
| benchmark/Bench_*.cpp | New standardized benchmarks using Google Benchmark API |
| benchmark/Street/, benchmark/Graph/, benchmark/Dynamics/ | Removed old benchmark directories and implementations |
| CMakeLists.txt | Added DSF_BENCHMARKS option and Profile build type |
| examples/CMakeLists.txt | Added profiling support with -pg flag |
| .gitmodules | Removed benchmark submodule reference |
| .github/workflows/cmake_tests.yml | Removed unused dependency installations |
| .github/workflows/benchmark_release.yml | New CI workflow for benchmark execution |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| elseif(CMAKE_BUILD_TYPE MATCHES "Profile") | ||
| if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") | ||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -march=native -flto=auto -pg") | ||
| endif() |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Profile build type uses -march=native which creates binaries optimized for the build machine's CPU architecture. This can cause portability issues if binaries are distributed. Consider documenting this limitation or using a separate option to enable -march=native for profiling.
No description provided.