Skip to content

Adding Benchmarks - #1016

Open
selmanozleyen wants to merge 15 commits into
scverse:mainfrom
selmanozleyen:feature/sq-benchmark
Open

Adding Benchmarks#1016
selmanozleyen wants to merge 15 commits into
scverse:mainfrom
selmanozleyen:feature/sq-benchmark

Conversation

@selmanozleyen

Copy link
Copy Markdown
Member

This PR adds benchmarks similar to the ones in https://github.com/scverse/scanpy/blob/main/benchmarks/benchmarks

@codecov-commenter

codecov-commenter commented Jul 10, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 24.20%. Comparing base (d8b8f91) to head (98b3dec).
⚠️ Report is 98 commits behind head on main.

❗ There is a different number of reports uploaded between BASE (d8b8f91) and HEAD (98b3dec). Click for more details.

HEAD has 3 uploads less than BASE
FlagBASE (d8b8f91)HEAD (98b3dec)
41
Additional details and impacted files
@@ Coverage Diff @@## main #1016 +/- ##
===========================================
- Coverage 66.63% 24.20% -42.44% 
===========================================
Files 40 41 +1 Lines 6060 6053 -7 Branches 1015 1012 -3 ===========================================
- Hits 4038 1465 -2573 - Misses 1662 4571 +2909 + Partials 360 17 -343 

see 32 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@scverse-benchmark

scverse-benchmarkBot commented Aug 14, 2025

Copy link
Copy Markdown

@flying-sheep

Copy link
Copy Markdown
Member

OK, silly me, it was RIGHT THERE in the “Usage” part of the readme: https://github.com/scverse/benchmark#usage

I improved that bit a little, but we should all have seen it immediately.

@flying-sheep

Copy link
Copy Markdown
Member

I tried a lot of asv environment creation backends, but in the end, I just went with virtualenv and a custom install_command that uses uv instead of pip (which currently has resolution issues with squidpy’s deps)

One isse with asv is that it commits the one cardinal sin of environment management: It resolves dependencies more than once (i.e. in the install_command and from matrix.req), so there are two ways of using it:

  1. don’t use matrix.req and install dependencies in install_command (making matrix.req useless)
  2. list all dependencies in matrix.req and add --no-deps to the install_command (which forces you to maintain your dependency list in two spots)

that being said, I think you can use matrix.env variables install_command, e.g.:

{
...,"install_command": ["python -m uv pip install {r_numpy} {wheel_file}"],
"matrix": {
"env": {
"R_NUMPY": ["numpy<2", "numpy>=2"],
},
},
}

@flying-sheep

Copy link
Copy Markdown
Member

I made an issue about this: airspeed-velocity/asv#1542

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmarkenhancement ✨New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@selmanozleyen@codecov-commenter@flying-sheep@ilan-gold