Skip to content

Rename performance notes file to 3570.perf.md

24f042e
Select commit
Loading
Failed to load commit list.
Open

perf: more efficient _sparse_nanmean #3570

Rename performance notes file to 3570.perf.md
24f042e
Select commit
Loading
Failed to load commit list.
scverse-benchmark / benchmark succeeded Apr 7, 2026 in 1h 37m 14s

Benchmark

Benchmark run successful

Details

All benchmarks:

Change Before [9bc2c1e] After [24f042e] Ratio Benchmark (Parameter)
311M 310M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('bmmc', 'counts')
312M 311M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('bmmc', 'counts-off-axis')
4.11G 4.11G 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('lung93k', 'counts')
4.11G 4.11G 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('lung93k', 'counts-off-axis')
378M 378M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc3k', 'counts')
377M 378M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc3k', 'counts-off-axis')
289M 288M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc68k_reduced', 'counts')
289M 289M 1.00 preprocessing_counts.FastSuite.peakmem_calculate_qc_metrics('pbmc68k_reduced', 'counts-off-axis')
314M 314M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('bmmc', 'counts')
314M 314M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('bmmc', 'counts-off-axis')
4.45G 4.45G 1.00 preprocessing_counts.FastSuite.peakmem_log1p('lung93k', 'counts')
4.45G 4.45G 1.00 preprocessing_counts.FastSuite.peakmem_log1p('lung93k', 'counts-off-axis')
385M 385M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc3k', 'counts')
384M 384M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc3k', 'counts-off-axis')
288M 288M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc68k_reduced', 'counts')
288M 288M 1.00 preprocessing_counts.FastSuite.peakmem_log1p('pbmc68k_reduced', 'counts-off-axis')
404M 407M 1.01 preprocessing_counts.FastSuite.peakmem_normalize_total('bmmc', 'counts')
407M 407M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('bmmc', 'counts-off-axis')
4.96G 4.96G 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('lung93k', 'counts')
4.97G 4.97G 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('lung93k', 'counts-off-axis')
474M 474M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc3k', 'counts')
473M 473M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc3k', 'counts-off-axis')
288M 289M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc68k_reduced', 'counts')
288M 288M 1.00 preprocessing_counts.FastSuite.peakmem_normalize_total('pbmc68k_reduced', 'counts-off-axis')
12.7±0.3ms 12.7±0.3ms 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('bmmc', 'counts')
12.3±0.07ms 12.3±0.06ms 1.00 preprocessing_counts.FastSuite.time_calculate_qc_metrics('bmmc', 'counts-off-axis')
2.06±0s 2.04±0s 0.99 preprocessing_counts.FastSuite.time_calculate_qc_metrics('lung93k', 'counts')
1.65±0.01s 1.62±0s 0.98 preprocessing_counts.FastSuite.time_calculate_qc_metrics('lung93k', 'counts-off-axis')
38.3±0.2ms 37.0±0.7ms 0.96 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc3k', 'counts')
29.2±1ms 27.7±0.9ms 0.95 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc3k', 'counts-off-axis')
4.73±0.07ms 4.76±0.04ms 1.01 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc68k_reduced', 'counts')
4.73±0.08ms 4.79±0.07ms 1.01 preprocessing_counts.FastSuite.time_calculate_qc_metrics('pbmc68k_reduced', 'counts-off-axis')
1.52±0.03ms 1.73±0.1ms ~1.14 preprocessing_counts.FastSuite.time_log1p('bmmc', 'counts')
1.60±0.07ms 1.60±0.09ms 1.00 preprocessing_counts.FastSuite.time_log1p('bmmc', 'counts-off-axis')
634±4ms 638±0.7ms 1.01 preprocessing_counts.FastSuite.time_log1p('lung93k', 'counts')
640±1ms 634±5ms 0.99 preprocessing_counts.FastSuite.time_log1p('lung93k', 'counts-off-axis')
7.10±0.03ms 7.16±0.2ms 1.01 preprocessing_counts.FastSuite.time_log1p('pbmc3k', 'counts')
7.30±0.06ms 7.30±0.02ms 1.00 preprocessing_counts.FastSuite.time_log1p('pbmc3k', 'counts-off-axis')
394±10μs 429±30μs 1.09 preprocessing_counts.FastSuite.time_log1p('pbmc68k_reduced', 'counts')
387±1μs 427±40μs ~1.10 preprocessing_counts.FastSuite.time_log1p('pbmc68k_reduced', 'counts-off-axis')
2.92±8ms 2.60±0.06ms ~0.89 preprocessing_counts.FastSuite.time_normalize_total('bmmc', 'counts')
6.74±0.2ms 6.66±0.2ms 0.99 preprocessing_counts.FastSuite.time_normalize_total('bmmc', 'counts-off-axis')
545±5ms 538±9ms 0.99 preprocessing_counts.FastSuite.time_normalize_total('lung93k', 'counts')
2.85±0.01s 2.78±0.02s 0.98 preprocessing_counts.FastSuite.time_normalize_total('lung93k', 'counts-off-axis')
8.56±0.2ms 8.61±0.4ms 1.01 preprocessing_counts.FastSuite.time_normalize_total('pbmc3k', 'counts')
35.6±6ms 34.0±0.2ms 0.96 preprocessing_counts.FastSuite.time_normalize_total('pbmc3k', 'counts-off-axis')
549±1μs 547±0.9μs 1.00 preprocessing_counts.FastSuite.time_normalize_total('pbmc68k_reduced', 'counts')
547±1μs 547±3μs 1.00 preprocessing_counts.FastSuite.time_normalize_total('pbmc68k_reduced', 'counts-off-axis')
399M 400M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc3k', 'random_state')
399M 399M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc3k', 'rng')
336M 337M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc68k_reduced', 'random_state')
336M 336M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_per_cell('pbmc68k_reduced', 'rng')
468M 468M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc3k', 'random_state')
432M 432M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc3k', 'rng')
341M 341M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc68k_reduced', 'random_state')
338M 338M 1.00 preprocessing_counts.PreprocessingCountsRngSuite.peakmem_downsample_total('pbmc68k_reduced', 'rng')
205±1ms 207±3ms 1.01 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc3k', 'random_state')
72.7±0.8ms 73.3±0.5ms 1.01 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc3k', 'rng')
25.4±0.09ms 25.1±0.3ms 0.99 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc68k_reduced', 'random_state')
16.2±0.06ms 16.7±0.06ms 1.03 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_per_cell('pbmc68k_reduced', 'rng')
194±10ms 190±1ms 0.98 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc3k', 'random_state')
63.1±2ms 65.9±6ms 1.04 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc3k', 'rng')
12.8±0.5ms 13.2±0.08ms 1.03 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc68k_reduced', 'random_state')
7.06±0.4ms 7.12±0.3ms 1.01 preprocessing_counts.PreprocessingCountsRngSuite.time_downsample_total('pbmc68k_reduced', 'rng')
431M 430M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc3k', 'counts')
431M 431M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc3k', 'counts-off-axis')
299M 300M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc68k_reduced', 'counts')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_cells('pbmc68k_reduced', 'counts-off-axis')
431M 430M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc3k', 'counts')
431M 431M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc3k', 'counts-off-axis')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc68k_reduced', 'counts')
299M 299M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_filter_genes('pbmc68k_reduced', 'counts-off-axis')
1.11G 1.1G 0.99 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc3k', 'counts')
1.11G 1.1G 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc3k', 'counts-off-axis')
530M 528M 0.99 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc68k_reduced', 'counts')
529M 528M 1.00 preprocessing_counts.PreprocessingCountsSuite.peakmem_scrublet('pbmc68k_reduced', 'counts-off-axis')
61.1±9ms 56.2±0.8ms 0.92 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc3k', 'counts')
59.1±0.4ms 58.6±0.5ms 0.99 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc3k', 'counts-off-axis')
10.5±1ms 10.1±0.7ms 0.96 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc68k_reduced', 'counts')
10.0±0.7ms 10.3±1ms 1.03 preprocessing_counts.PreprocessingCountsSuite.time_filter_cells('pbmc68k_reduced', 'counts-off-axis')
52.7±0.5ms 51.5±0.3ms 0.98 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc3k', 'counts')
51.9±0.3ms 51.0±0.8ms 0.98 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc3k', 'counts-off-axis')
11.6±2ms 10.1±0.8ms ~0.87 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc68k_reduced', 'counts')
10.2±0.8ms 10.4±1ms 1.02 preprocessing_counts.PreprocessingCountsSuite.time_filter_genes('pbmc68k_reduced', 'counts-off-axis')
2.76±0.01s 5.66±2s ~2.05 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc3k', 'counts')
2.64±0.03s 2.56±0.03s 0.97 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc3k', 'counts-off-axis')
554±4ms 556±5ms 1.00 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc68k_reduced', 'counts')
546±10ms 562±5ms 1.03 preprocessing_counts.PreprocessingCountsSuite.time_scrublet('pbmc68k_reduced', 'counts-off-axis')
441M 441M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc3k', 'off-axis')
492M 491M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc3k', None)
295M 295M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc68k_reduced', 'off-axis')
297M 298M 1.00 preprocessing_log.PreprocessingSuite.peakmem_highly_variable_genes('pbmc68k_reduced', None)
569M 573M 1.01 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc3k', 'off-axis')
587M 588M 1.00 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc3k', None)
496M 492M 0.99 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc68k_reduced', 'off-axis')
498M 499M 1.00 preprocessing_log.PreprocessingSuite.peakmem_pca('pbmc68k_reduced', None)
n/a n/a n/a preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc3k', 'off-axis')
n/a n/a n/a preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc3k', None)
350M 350M 1.00 preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc68k_reduced', 'off-axis')
353M 353M 1.00 preprocessing_log.PreprocessingSuite.peakmem_regress_out('pbmc68k_reduced', None)
1.3G 1.3G 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc3k', 'off-axis')
1.5G 1.5G 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc3k', None)
337M 336M 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc68k_reduced', 'off-axis')
339M 339M 1.00 preprocessing_log.PreprocessingSuite.peakmem_scale('pbmc68k_reduced', None)
34.6±0.5ms 34.5±2ms 1.00 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc3k', 'off-axis')
40.9±1ms 40.1±0.6ms 0.98 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc3k', None)
16.6±0.3ms 16.7±0.08ms 1.00 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc68k_reduced', 'off-axis')
16.7±0.08ms 16.6±0.3ms 1.00 preprocessing_log.PreprocessingSuite.time_highly_variable_genes('pbmc68k_reduced', None)
1.96±0.01s 1.93±0.01s 0.98 preprocessing_log.PreprocessingSuite.time_pca('pbmc3k', 'off-axis')
2.15±0.02s 2.14±0.02s 0.99 preprocessing_log.PreprocessingSuite.time_pca('pbmc3k', None)
165±8ms 163±20ms 0.99 preprocessing_log.PreprocessingSuite.time_pca('pbmc68k_reduced', 'off-axis')
167±6ms 144±40ms ~0.86 preprocessing_log.PreprocessingSuite.time_pca('pbmc68k_reduced', None)
n/a n/a n/a preprocessing_log.PreprocessingSuite.time_regress_out('pbmc3k', 'off-axis')
n/a n/a n/a preprocessing_log.PreprocessingSuite.time_regress_out('pbmc3k', None)
17.1±0.5ms 16.7±0.4ms 0.97 preprocessing_log.PreprocessingSuite.time_regress_out('pbmc68k_reduced', 'off-axis')
16.8±0.6ms 16.8±0.8ms 1.00 preprocessing_log.PreprocessingSuite.time_regress_out('pbmc68k_reduced', None)
503±1ms 503±4ms 1.00 preprocessing_log.PreprocessingSuite.time_scale('pbmc3k', 'off-axis')
546±1ms 546±0.7ms 1.00 preprocessing_log.PreprocessingSuite.time_scale('pbmc3k', None)
4.71±0.1ms 4.71±0.1ms 1.00 preprocessing_log.PreprocessingSuite.time_scale('pbmc68k_reduced', 'off-axis')
4.79±0.07ms 4.79±0.08ms 1.00 preprocessing_log.PreprocessingSuite.time_scale('pbmc68k_reduced', None)
288M 287M 1.00 tools.ToolsSuite.peakmem_diffmap
294M 294M 1.00 tools.ToolsSuite.peakmem_leiden
375M 374M 1.00 tools.ToolsSuite.peakmem_rank_genes_groups
+ 290M 338M 1.16 tools.ToolsSuite.peakmem_score_genes
450M 449M 1.00 tools.ToolsSuite.peakmem_umap
16.7±0.7ms 16.3±0.4ms 0.98 tools.ToolsSuite.time_diffmap
19.7±0.09ms 19.8±0.1ms 1.00 tools.ToolsSuite.time_leiden
60.1±6ms 60.3±5ms 1.00 tools.ToolsSuite.time_rank_genes_groups
- 19.4±0.2ms 17.5±0.1ms 0.90 tools.ToolsSuite.time_score_genes
1.02±0s 1.02±0s 1.00 tools.ToolsSuite.time_umap