Skip to content

Drop cold-start sample from import-time profiling#4552

Merged
alejoe91 merged 3 commits intoSpikeInterface:mainfrom
h-mayorquin:fix_CI_profiling_test
Apr 22, 2026
Merged

Drop cold-start sample from import-time profiling#4552
alejoe91 merged 3 commits intoSpikeInterface:mainfrom
h-mayorquin:fix_CI_profiling_test

Conversation

@h-mayorquin
Copy link
Copy Markdown
Collaborator

The previous PR (#4532) raised the per-sample threshold to 6.0 s as a temporary measure and added the per-sample table to the step summary so we could see the actual distribution. After looking at the data of some rounds I think it is just that the first sample is dominated by OS side-effects on running python for the first time. In Windows this must be worse, as that cost is dominated by OS-side effects (filesystem cache priming, DLL loading, Defender scanning a freshly-installed package). This is not a property of SpikeInterface and should not be measured on the import weight.

This PR adds a discarded warm-up subprocess before the timed loop for each import statement, so the table only contains steady-state samples. With the cold-start outlier removed, the per-sample threshold goes back to 3.0 s and the average gate stays at 2.0 s. The gate is now more sensitive to real regressions (a heavy import added to a top-level __init__.py shows up on every sample, not just the cold one), and the noise floor on Windows drops to the ~0.4 s steady-state we already see on the other runners.

I have also bumped actions/checkout, actions/cache, actions/cache/restore, and codecov/codecov-action to their current Node.js 24 majors across the workflows to clear the Node.js 20 deprecation warnings.

@h-mayorquin h-mayorquin marked this pull request as ready for review April 22, 2026 02:45
@alejoe91 alejoe91 merged commit a3fe49c into SpikeInterface:main Apr 22, 2026
15 checks passed
@h-mayorquin h-mayorquin deleted the fix_CI_profiling_test branch April 22, 2026 19:32
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