Skip to content

chore(deps): Update numpy requirement from <2.6,>=2.5.2 to >=2.5.3,<2.6 - #331

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/numpy-gte-2.5.3-and-lt-2.6
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/numpy-gte-2.5.3-and-lt-2.6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on numpy to permit the latest version.

Release notes

Sourced from numpy's releases.

v2.5.3 (Sep 6, 2026)

NumPy 2.5.3 Release Notes

The NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2 release. Apart from the usual bug and maintenance work, there are a number of StringDType related fixes for problems discovered during the ongoing string work in the main branch.

This release supports Python versions 3.12-3.15

Changes

  • Casting a fixed-width byte string array (np.bytes_) to StringDType now raises TypeError when the bytes are not valid UTF-8. Previously the invalid bytes were stored as-is and later caused undefined behavior in string operations.

    (gh-32296)

  • MaskedArray._fill_value would become stale when ufuncs that change dtype left the result holding a fill_value typed for the old dtype. The mismatch was silent until something later called _check_fill_value, such as .view(), and then a TypeError would be raised. Now, when the copied fill_value is no longer valid for the new dtype, fall back to the default fill_value for that dtype instead of propagating the stale value. This may raise a ComplexWarning if the fill_value is complex and the new dtype is real.

    (gh-32423)

Contributors

A total of 9 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

  • Charles Harris
  • Iason Krommydas
  • James Davies +
  • Joren Hammudoglu
  • Maanas Arora
  • Matti Picus
  • Nathan Goldbaum
  • Shikhar Goel +
  • Yeonho Kim +

Pull requests merged

A total of 27 pull requests were merged for this release.

  • #32235: MAINT: Prepare 2.5.x for further development

... (truncated)

Changelog

Sourced from numpy's changelog.

This is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the first feature release using the numpy/numpy-release <https://github.com/numpy/numpy-release>__ repository.

The commands can be copied into the command line, but be sure to replace 2.4.0 with the correct version. This should be read together with the :ref:general release guide <prepare_release>.

Facility preparation

Before beginning to make a release, use the requirements/*_requirements.txt files to ensure that you have the needed software. Most software can be installed with pip, but some will require apt-get, dnf, or whatever your system uses for software. You will also need a GitHub personal access token (PAT) to push the documentation. There are a few ways to streamline things:

  • Git can be set up to use a keyring to store your GitHub personal access token. Search online for the details.

Prior to release

Add/drop Python versions

When adding or dropping Python versions, multiple config and CI files need to be edited in addition to changing the minimum version in pyproject.toml. Make these changes in an ordinary PR against main and backport if necessary. We currently release wheels for new Python versions after the first Python RC once manylinux and cibuildwheel support that new Python version.

Backport pull requests

Changes that have been marked for this release must be backported to the maintenance/2.4.x branch.

Update 2.4.0 milestones

Look at the issues/prs with 2.4.0 milestones and either push them off to a later version, or maybe remove the milestone. You may need to add a milestone.

Check the numpy-release repo

... (truncated)

Commits
  • dd88c0c Merge pull request #32511 from charris/prepare-2.5.3
  • edcac6a REL: Prepare for the NumPy 2.5.3 release
  • fd4d908 Merge pull request #32509 from charris/backport-32496
  • 65bb1da BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (#32496)
  • 294956e Merge pull request #32506 from charris/backport-32503
  • 26428d9 DOC: fix scipy docs links in intersphinx mapping (#32507)
  • 5fab1cb DOC: use static scipy doc site for intershpinx (#32503)
  • 7beed2f Merge pull request #32481 from ngoldbaum/stringdtype-backport
  • 8972f70 Merge pull request #32478 from charris/backport-32466
  • ab1b589 Merge pull request #32477 from charris/backport-32423
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [numpy](https://github.com/numpy/numpy) to permit the latest version.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](numpy/numpy@v2.5.2...v2.5.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-version: 2.5.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 14, 2026
@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.12)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.80  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.13
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.12
·· Installing a79e20ff into virtualenv-py3.12
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.12
[ 0.00%] ·· Benchmarking virtualenv-py3.12
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)...
[10.85%] ··· Running (bench_backtest.LagPrepBottlenecks.time_merge_lag_cache_from_store--)......
[13.68%] ··· Running (bench_backtest.PortfolioHeldStops.time_portfolio_held_stops--)........
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[24.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[25.00%] · For pybroker commit a79e20ff (round 1/2):
[25.00%] ·· Building for virtualenv-py3.12
[25.00%] ·· Benchmarking virtualenv-py3.12
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[49.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[50.00%] · For pybroker commit a79e20ff (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         99.4±0.4ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           611±10μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  27.9±0.4μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.59±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        12.0±0.06ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           23.6±0.2ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           25.5±0.1ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.8±0.6μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             35.7±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            21.4±0.5μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.7±0.3ms 
                 200      49.7±0.2ms 
                 500      111±0.8ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     7.02±0.1μs 
              100000   1.68±0.01ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.83±0.04μs 
              100000     1.81±0ms  
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== ============
              length              
             -------- ------------
               1000    6.87±0.4μs 
              100000    1.81±0ms  
             ======== ============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.75±0.03μs 
              100000     358±10μs  
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.0±0.08μs 
              100000   4.44±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.59±0.03μs 
              100000     979±4μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      147±4ms  
                 200      363±20ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= =============
             --                  n_indicators       
             ----------- ---------------------------
              n_symbols        1             5      
             =========== ============= =============
                  50      9.74±0.07ms   20.6±0.09ms 
                 200       38.2±0.2ms    82.1±0.3ms 
                 500        97.0±1ms     206±0.7ms  
             =========== ============= =============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.50±1ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.15±0.02ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.10±0.09ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         53.3±0.5μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        749±3ms  
                    True        448±30ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.38±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.12±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.50±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         70.8±0.3ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.13±0.01ms   2.42±0.03ms 
                  10      2.25±0.02ms    5.74±0.1ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== ==========
             --            n_days  
             ----------- ----------
              n_symbols     1260   
             =========== ==========
                  10      964±10μs 
             =========== ==========

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             65.8±0.6ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         65.0±0.3ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          199±0.4ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            277±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            352±4ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            345±1ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            348±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            352±2ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         90.2±0.5ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            655±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         62.0±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      44.8±0.4ms   87.9±0.5ms 
                 3      62.0±0.3ms   124±0.8ms  
                 10     83.7±0.8ms   172±0.5ms  
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.60±0.01ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.42±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize           63.1±2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.64±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.7±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.60±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            256±2ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            256±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.12
[75.00%] ·· Benchmarking virtualenv-py3.12
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         98.8±0.5ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           606±60μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  27.7±0.3μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            3.46±0.07μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        12.0±0.02ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          23.1±0.04ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.3±0.04ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.7±0.5μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             35.7±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.4±0.2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.0±0.1ms 
                 200      50.4±0.4ms 
                 500      111±0.7ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.74±0.06μs 
              100000   1.68±0.03ms 
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000     6.79±0.2μs 
              100000   1.81±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.84±0.05μs 
              100000   1.81±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.73±0.05μs 
              100000     359±6μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.0±0.09μs 
              100000   4.43±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.56±0.06μs 
              100000     980±3μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      147±6ms  
                 200      354±10ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ =============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols       1             5      
             =========== ============ =============
                  50      9.69±0.1ms   20.3±0.08ms 
                 200      38.0±0.5ms    81.5±0.7ms 
                 500      96.9±0.4ms     206±2ms   
             =========== ============ =============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.91±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.14±0.01ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store         1.09±0.1ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           51.7±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        737±5ms  
                    True        447±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.32±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.13±0.03ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         4.44±0.2ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           71.2±1ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.13±0.01ms   2.39±0.04ms 
                  10      2.28±0.02ms   5.68±0.07ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =========
             --            n_days 
             ----------- ---------
              n_symbols     1260  
             =========== =========
                  10      960±6μs 
             =========== =========

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             64.6±0.6ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         64.9±0.9ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            199±1ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            275±1ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          348±0.3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            342±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            346±4ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          350±0.6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           90.0±1ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            662±7ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         61.2±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      43.7±0.8ms   87.5±0.2ms 
                 3      62.0±0.7ms    125±1ms   
                 10      83.8±2ms     171±1ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.57±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.40±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.3±0.3ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.59±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.0±0.7ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.57±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            256±3ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            255±2ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.14)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.85  bench_backtest.CacheL1Hit.time_cache_l1_get
   0.90  bench_backtest.EvalKernels.time_sharpe_ratio
   0.90  bench_backtest.IndicatorKernels.time_returnv(100000)

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.23  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 461.6us) [I/O-bound, never blocks]

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.13
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.14
·· Installing a79e20ff into virtualenv-py3.14
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.14
[ 0.00%] ·· Benchmarking virtualenv-py3.14
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[24.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[25.00%] · For pybroker commit a79e20ff (round 1/2):
[25.00%] ·· Building for virtualenv-py3.14
[25.00%] ·· Benchmarking virtualenv-py3.14
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[49.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[50.00%] · For pybroker commit a79e20ff (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            111±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          568±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    35.1±2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.23±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.0±0.03ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.0±0.05ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.03ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.2±0.5μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           28.6±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.5±0.8μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.0±0.1ms 
                 200      46.5±0.7ms 
                 500      98.9±0.5ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    8.54±0.1μs 
              100000    712±30μs  
             ======== ============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000     7.40±0.1μs 
              100000   1.40±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000     7.21±0.1μs 
              100000   1.43±0.01ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.32±0.05μs 
              100000     107±2μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000     15.1±0.1μs 
              100000   3.08±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    5.66±0.1μs 
              100000    684±6μs   
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      134±6ms  
                 200      370±30ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.2±0.1ms   25.3±0.2ms 
                 200      39.0±0.8ms   99.6±0.6ms 
                 500      98.6±0.7ms    254±2ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.13±0.6ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.02±0.03ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           937±60μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           77.5±3μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        835±6ms 
                    True        451±4ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.87±0.05ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.37±0.03ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         4.66±0.1ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           90.9±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.26±0.03ms 
                  10      2.22±0.03ms    5.08±0.1ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== ==========
             --            n_days  
             ----------- ----------
              n_symbols     1260   
             =========== ==========
                  10      1.04±0ms 
             =========== ==========

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               80.6±3ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           81.7±2ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            240±1ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            379±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          412±0.9ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            406±2ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          406±0.8ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          413±0.9ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window            101±1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            743±1ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         76.9±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      54.4±0.3ms   105±2ms  
                 3      77.4±0.9ms   166±10ms 
                 10      106±1ms     217±10ms 
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.30±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.51±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         77.3±0.8ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.54±0.04ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.2±0.6ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.73±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            313±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          314±0.8ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.14
[75.00%] ·· Benchmarking virtualenv-py3.14
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            112±2ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           462±10μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    33.3±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.80±0.5μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         10.9±0.2ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.04ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.04ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            13.0±0.9μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.3±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.6±0.9μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.7±0.5ms 
                 200      46.5±0.6ms 
                 500       99.2±2ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.31±0.07μs 
              100000     676±20μs  
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    7.31±0.04μs 
              100000   1.41±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.18±0.03μs 
              100000   1.43±0.02ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.29±0.05μs 
              100000     119±7μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000     15.0±0.2μs 
              100000   3.07±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.50±0.06μs 
              100000     685±5μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== =========
             --          n_indicators
             ----------- ---------
              n_symbols      5    
             =========== =========
                  50      132±5ms 
                 200      354±3ms 
             =========== =========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.2±0.1ms   25.8±0.3ms 
                 200      39.6±0.5ms   99.9±0.6ms 
                 500      103±0.7ms     255±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.71±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           986±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           911±10μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         78.7±0.8μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        843±10ms 
                    True        451±5ms  
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.87±0.05ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.34±0.01ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.52±0.05ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         92.6±0.7ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.31±0.05ms 
                  10      2.22±0.03ms   5.21±0.06ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.07±0.01ms 
             =========== =============

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               80.0±2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         81.1±0.8ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          239±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          391±0.9ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          413±0.5ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            409±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          408±0.2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            417±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window            103±1ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            753±3ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         77.8±0.4ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      54.1±0.2ms   106±0.8ms 
                 3      77.2±0.6ms    165±10ms 
                 10     102±0.9ms     208±10ms 
             ========= ============ ===========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.26±0.01ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.46±0.05ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         76.7±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.49±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.1±0.2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.73±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            315±4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            315±3ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.13)

Exit code: 1 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.68  bench_backtest.IndicatorKernels.time_stochastic(1000)

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.19  bench_backtest.EvalKernels.time_sharpe_ratio  (baseline 16.596us)

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.13
·· Installing a79e20ff into virtualenv-py3.13
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.13
[ 0.00%] ·· Benchmarking virtualenv-py3.13
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[11.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[24.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[25.00%] · For pybroker commit a79e20ff (round 1/2):
[25.00%] ·· Building for virtualenv-py3.13
[25.00%] ·· Benchmarking virtualenv-py3.13
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[49.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[50.00%] · For pybroker commit a79e20ff (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          103±0.5ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          671±200μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.3±0.7μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.75±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.1±0.2ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.1±0.08ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.03ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.4±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.8±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            19.7±0.8μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      22.9±0.7ms 
                 200      49.2±0.3ms 
                 500      105±0.6ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.15±0.08μs 
              100000     688±8μs   
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.68±0.09μs 
              100000     1.38±0ms  
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.63±0.06μs 
              100000   1.39±0.01ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.99±0.09μs 
              100000     108±2μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.3±0.08μs 
              100000   2.99±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.31±0.06μs 
              100000     679±4μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      148±10ms 
                 200      372±30ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.6±0.06ms   26.5±0.5ms 
                 200       41.0±0.6ms   107±0.5ms  
                 500        107±2ms      265±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.77±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.03±0.01ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store            991±9μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           65.3±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        885±2ms 
                    True        472±3ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.88±0.06ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.36±0.03ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.58±0.03ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           93.0±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.23±0.02ms   2.39±0.02ms 
                  10      2.27±0.03ms   5.29±0.03ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.10±0.01ms 
             =========== =============

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               79.9±2ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           80.0±1ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          242±0.6ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            395±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          426±0.8ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          422±0.6ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            427±4ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            431±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         98.4±0.5ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            779±7ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           77.1±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      54.1±0.1ms   105±0.7ms 
                 3      79.5±0.3ms    163±10ms 
                 10     103±0.8ms     208±20ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.37±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.41±0.04ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         73.5±0.5ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.57±0.05ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.0±0.3ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.78±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            311±3ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            308±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.13
[75.00%] ·· Benchmarking virtualenv-py3.13
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          103±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          619±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    33.8±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.61±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.0±0.1ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.06ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.04ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.2±0.4μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             27.6±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.6±0.1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.6±0.2ms 
                 200      47.7±0.6ms 
                 500      104±0.8ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.12±0.06μs 
              100000     679±6μs   
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.60±0.04μs 
              100000     1.38±0ms  
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.70±0.06μs 
              100000     1.38±0ms  
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.04±0.09μs 
              100000    108±0.6μs  
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000      20.9±7μs  
              100000   2.99±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.27±0.06μs 
              100000     680±6μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      144±6ms  
                 200      404±40ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.8±0.2ms   26.8±0.4ms 
                 200      41.9±0.2ms   107±0.9ms  
                 500      105±0.8ms     264±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.00±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.02±0.04ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           978±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         63.2±0.7μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        879±2ms 
                    True        468±3ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.91±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.34±0.04ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         4.75±0.1ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         94.6±0.7ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.22±0.03ms   2.38±0.04ms 
                  10      2.24±0.04ms   5.27±0.03ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.12±0.01ms 
             =========== =============

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               81.1±2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         81.7±0.5ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          242±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            399±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            426±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          426±0.8ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            424±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          426±0.6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         96.6±0.5ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            784±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         75.7±0.2ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      53.2±0.5ms   104±1ms  
                 3       76.7±2ms    167±10ms 
                 10     103±0.7ms    206±10ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.35±0.03ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.29±0.07ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         73.0±0.4ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.57±0.03ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.3±0.5ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.85±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          309±0.6ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            306±2ms
| Change   | Before [eb9d3400]    | After [a79e20ff]    |   Ratio | Benchmark (Parameter)                        |
|----------|----------------------|---------------------|---------|----------------------------------------------|
| +        | 16.6±0.1μs           | 19.7±0.8μs          |    1.19 | bench_backtest.EvalKernels.time_sharpe_ratio |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE DECREASED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.11)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:


No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.13
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.11
·· Installing a79e20ff into virtualenv-py3.11
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.11
[ 0.00%] ·· Benchmarking virtualenv-py3.11
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)........
[18.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit a79e20ff (round 1/2):
[25.00%] ·· Building for virtualenv-py3.11
[25.00%] ·· Benchmarking virtualenv-py3.11
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[36.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)........
[43.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit a79e20ff (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         98.8±0.3ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           441±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  29.7±0.2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.22±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.04ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           21.3±0.1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.02ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            13.1±0.8μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             31.7±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.4±0.5μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      18.8±0.3ms 
                 200      41.1±0.6ms 
                 500      86.7±0.5ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     7.96±0.1μs 
              100000   1.65±0.01ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.57±0.05μs 
              100000   1.63±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.55±0.07μs 
              100000   1.64±0.01ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.80±0.09μs 
              100000     337±5μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.1±0.06μs 
              100000     3.93±0ms  
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.91±0.2μs 
              100000    907±6μs   
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      134±5ms  
                 200      317±50ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      8.99±0.09ms   23.2±0.3ms 
                 200       34.9±0.4ms   92.1±0.7ms 
                 500       89.2±0.9ms    232±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled        5.98±0.09ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           824±30μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           948±30μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         59.7±0.6μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        815±2ms  
                    True        451±30ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.28±0.03ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.84±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.98±0.01ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.1±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.02±0.01ms   1.89±0.02ms 
                  10      1.85±0.02ms   4.25±0.03ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.05±0.02ms 
             =========== =============

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             69.9±0.7ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         70.6±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          201±0.6ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            296±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          317±0.7ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          311±0.7ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            313±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          320±0.8ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           90.5±2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            632±9ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         68.4±0.4ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      48.0±0.5ms   92.2±0.3ms 
                 3      66.5±0.3ms   132±0.9ms  
                 10     88.8±0.3ms   182±0.9ms  
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.13±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.43±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.7±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.44±0.03ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.5±0.6ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.52±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          266±0.5ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            271±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.11
[75.00%] ·· Benchmarking virtualenv-py3.11
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          100±0.6ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           443±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  30.9±0.5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.99±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.07ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.2±0.03ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.04ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.3±0.9μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             33.2±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              21.9±2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      18.9±0.2ms 
                 200      41.2±0.3ms 
                 500      86.9±0.7ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    7.76±0.04μs 
              100000   1.59±0.01ms 
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.65±0.08μs 
              100000   1.63±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.53±0.06μs 
              100000   1.65±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.97±0.02μs 
              100000     328±4μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000     14.0±0.2μs 
              100000   3.94±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.14±0.06μs 
              100000     910±20μs  
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      141±3ms  
                 200      328±30ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      8.98±0.1ms   23.4±0.4ms 
                 200      34.7±0.6ms   93.1±0.7ms 
                 500      88.6±0.8ms    233±1ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.84±0.2ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           830±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           948±30μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           61.1±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        818±7ms  
                    True        445±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.37±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.84±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.99±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.9±0.9ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         991±10μs    1.89±0.02ms 
                  10      1.83±0.02ms   4.19±0.04ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.04±0.01ms 
             =========== =============

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             69.9±0.3ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         70.1±0.5ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          202±0.3ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            294±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            319±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          312±0.6ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          313±0.9ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          319±0.7ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         88.7±0.5ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            626±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         68.1±0.7ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      48.0±0.6ms   92.0±0.1ms 
                 3      67.6±0.3ms   132±0.5ms  
                 10      89.2±1ms     184±2ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.14±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.51±0.01ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         61.2±0.4ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.52±0.08ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.0±0.4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.53±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            268±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            271±2ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

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

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants