Skip to content

chore(deps): Update scikit-learn requirement from >=1.9.0 to >=1.9.1 - #333

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/scikit-learn-gte-1.9.1
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/scikit-learn-gte-1.9.1

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on scikit-learn to permit the latest version.

Release notes

Sourced from scikit-learn's releases.

Scikit-learn 1.9.1

We're happy to announce the 1.9.1 release.

This release contains a few bug fixes and is the first version supporting Python 3.15.

You can see the changelog here: https://scikit-learn.org/stable/whats_new/v1.9.html#version-1-9-1

You can upgrade with pip as usual:

pip install -U scikit-learn

The conda-forge builds can be installed using:

conda install -c conda-forge scikit-learn

Thanks to everyone who contributed to this release !

Commits
  • 866c0f5 generate changelog
  • 12f135f update upper bounds
  • 43ff2f2 bump version
  • b851524 DOC Mark dev index as orphan (#34916)
  • 01d56d4 DOC Fix wikipedia principal eigenvector example references (#34915)
  • b86a1e2 🔒 🤖 CI Update lock files for array-api CI build(s) 🔒 🤖 ...
  • d282698 🔒 🤖 CI Update lock files for main CI build(s) 🔒 🤖 (#34897)
  • eb34279 🔒 🤖 CI Update lock files for free-threaded CI build(s) 🔒 :rob...
  • 7581303 FIX: Fix QuantileTransformer(ignore_implicit_zeros=True) sub-sampling behav...
  • ac47f4d FIX: avoid EfficiencyWarning in OPTICS with metric='precomputed' (#34692)
  • 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 [scikit-learn](https://github.com/scikit-learn/scikit-learn) to permit the latest version.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](scikit-learn/scikit-learn@1.9.0...1.9.1)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-version: 1.9.1
  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 21, 2026
@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:


Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.18  bench_data.DataSourceCacheWrite.time_cache_write  (baseline 33.5621ms) [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.13
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.11
·· Installing ad1b605c 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.60%] ··· Running (bench_backtest.IndicatorKernels.time_highv--).......
[ 9.91%] ··· Running (bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled--).........
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)..........
[19.81%] ··· Running (bench_backtest.WalkforwardMultiWindow.time_walkforward_multi_window--)..........
[24.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[25.00%] · For pybroker commit ad1b605c (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.60%] ··· Running (bench_backtest.IndicatorKernels.time_highv--).......
[34.91%] ··· Running (bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled--).........
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)..........
[44.81%] ··· Running (bench_backtest.WalkforwardMultiWindow.time_walkforward_multi_window--)..........
[49.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[50.00%] · For pybroker commit ad1b605c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         73.8±0.4ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           370±40μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    21.0±2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.32±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        9.00±0.02ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          18.1±0.07ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          20.0±0.03ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            9.73±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           25.9±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.0±0.4μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      13.3±0.2ms 
                 200      30.8±0.1ms 
                 500      68.2±0.2ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    5.12±0.06μs 
              100000   1.26±0.01ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    5.05±0.03μs 
              100000     1.40±0ms  
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    5.11±0.04μs 
              100000     1.39±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    1.97±0.01μs 
              100000     271±4μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    11.5±0.05μs 
              100000   3.38±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    3.56±0.02μs 
              100000     761±4μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      98.5±2ms 
                 200      232±10ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= =============
             --                  n_indicators       
             ----------- ---------------------------
              n_symbols        1             5      
             =========== ============= =============
                  50      6.02±0.06ms   13.5±0.05ms 
                 200       23.6±0.3ms    55.4±0.3ms 
                 500       60.4±0.3ms    138±0.8ms  
             =========== ============= =============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled        4.67±0.04ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           636±20μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           783±20μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           39.5±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        588±1ms  
                    True        336±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.17±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        1.95±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.84±0.04ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         48.3±0.3ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         699±6μs     1.38±0.02ms 
                  10      1.36±0.01ms   3.14±0.04ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             44.2±0.7ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         44.9±0.8ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          138±0.6ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               254M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            199±4ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          219±0.3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          216±0.7ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            215±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            220±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           64.0±1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            421±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         42.9±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      30.0±0.3ms   62.0±0.3ms 
                 3      42.4±0.2ms   87.9±0.6ms 
                 10     56.0±0.2ms   119±0.5ms  
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         1.53±0.1ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        3.60±0.01ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         38.5±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.05±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           39.5±5ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.03±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            181±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            180±1ms
[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         74.0±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           376±30μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  21.5±0.5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.55±0.3μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        9.05±0.04ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          18.1±0.01ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           20.0±0.6ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            9.49±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           26.1±0.8μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            15.9±0.3μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      13.1±0.08ms 
                 200       31.2±0.3ms 
                 500       68.8±0.3ms 
             =========== =============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    5.14±0.06μs 
              100000   1.28±0.02ms 
             ======== =============

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

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    5.18±0.05μs 
              100000     1.39±0ms  
             ======== =============

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

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    11.5±0.04μs 
              100000   3.39±0.02ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    3.57±0.02μs 
              100000     768±10μs  
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      92.5±2ms 
                 200      230±10ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      6.14±0.04ms   13.4±0.1ms 
                 200       23.4±0.3ms    54.0±1ms  
                 500       60.3±0.6ms    139±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.66±0.2ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            645±9μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           761±40μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           38.6±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        584±3ms  
                    True        336±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.17±0.01ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        1.96±0.01ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.83±0.01ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         49.7±0.4ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         688±10μs    1.37±0.04ms 
                  10      1.37±0.02ms   3.27±0.07ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             44.5±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           47.3±2ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          139±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               254M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            196±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            219±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          217±0.7ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          217±0.3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          219±0.9ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         63.4±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar          418±0.5ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         43.7±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      30.6±0.1ms   61.9±0.8ms 
                 3      42.6±0.3ms   88.1±0.5ms 
                 10     56.6±0.4ms   120±0.5ms  
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         1.55±0.4ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        3.60±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         38.3±0.1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.06±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           33.6±5ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.03±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          178±0.4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            180±1ms

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.81  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled
   0.89  bench_backtest.LagPrepBottlenecks.time_merge_lag_cache_from_store
   0.91  bench_backtest.Walkforward.time_walkforward
   0.90  bench_backtest.WalkforwardScaled.time_walkforward_scaled(3, 4)
   0.87  bench_data.DataSourceCacheWrite.time_cache_write

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.33  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 445.008us) [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 ad1b605c 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.60%] ··· Running (bench_backtest.IndicatorKernels.time_highv--).......
[ 9.91%] ··· Running (bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled--)..........
[14.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)..........
[20.28%] ··· Running (bench_backtest.WalkforwardPerBar.time_walkforward_per_bar--)..........
[25.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[25.00%] · For pybroker commit ad1b605c (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.60%] ··· Running (bench_backtest.IndicatorKernels.time_highv--).......
[34.91%] ··· Running (bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled--)..........
[39.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)..........
[45.28%] ··· Running (bench_backtest.WalkforwardPerBar.time_walkforward_per_bar--)..........
[50.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[50.00%] · For pybroker commit ad1b605c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         62.1±0.4ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          592±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    18.2±2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.05±0.3μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        7.44±0.05ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           15.3±0.1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          16.9±0.04ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            6.00±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           19.8±0.3μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            9.05±0.3μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      14.1±0.6ms 
                 200      30.6±0.1ms 
                 500      67.9±0.3ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    5.65±0.2μs 
              100000    586±30μs  
             ======== ============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    5.34±0.02μs 
              100000   1.21±0.03ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    5.34±0.04μs 
              100000     1.20±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    1.63±0.03μs 
              100000    83.3±0.5μs 
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    11.8±0.04μs 
              100000   2.57±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    3.98±0.2μs 
              100000    471±8μs   
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      78.0±2ms 
                 200      194±30ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      6.52±0.09ms   13.8±0.4ms 
                 200        24.0±1ms     57.4±2ms  
                 500        61.2±4ms     137±3ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         3.31±0.5ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           767±10μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           706±30μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           39.6±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ===========
              parallel_models             
             ----------------- -----------
                   False         504±20ms 
                    True        227±0.9ms 
             ================= ===========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.18±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.06±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.84±0.01ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         50.4±0.6ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         703±10μs    1.57±0.09ms 
                  10      1.44±0.04ms   3.69±0.04ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             44.6±0.6ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         44.7±0.4ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          136±0.5ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            216±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            239±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            237±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            235±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            238±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         60.0±0.5ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            415±1ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         42.7±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      30.3±0.2ms   59.4±3ms 
                 3      42.7±0.5ms   94.5±3ms 
                 10     57.1±0.7ms   115±7ms  
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.70±0.03ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        3.75±0.04ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         46.8±0.3ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.03±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write          37.0±60ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.05±0.04ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            174±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            175±2ms
[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         63.2±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           445±30μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  16.7±0.6μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.09±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        7.42±0.02ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          15.2±0.02ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           17.0±0.2ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            5.87±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           20.0±0.3μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            8.82±0.2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      13.5±0.3ms 
                 200      30.3±0.5ms 
                 500      67.3±0.4ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    5.74±0.07μs 
              100000     558±10μs  
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    5.38±0.09μs 
              100000   1.20±0.02ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    5.34±0.04μs 
              100000   1.22±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    1.66±0.04μs 
              100000     83.1±8μs  
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    11.8±0.06μs 
              100000    2.71±0.2ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.14±0.2μs 
              100000    488±20μs  
             ======== ============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      78.6±1ms 
                 200      189±10ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ =============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols       1             5      
             =========== ============ =============
                  50      6.67±0.4ms   13.4±0.03ms 
                 200      23.8±0.4ms    53.4±0.9ms 
                 500      61.5±0.5ms     138±4ms   
             =========== ============ =============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.10±0.4ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           781±30μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           790±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         41.7±0.7μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        499±3ms  
                    True        240±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.17±0.01ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.06±0.04ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.85±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         51.0±0.2ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         706±10μs    1.46±0.02ms 
                  10      1.41±0.08ms   3.77±0.08ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               49.2±2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           47.8±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            143±4ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            217±1ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            239±2ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            234±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached           235±10ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            245±6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         62.0±0.5ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            414±4ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         42.7±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      30.8±0.2ms   59.4±4ms 
                 3       47.5±2ms    94.2±3ms 
                 10      58.6±2ms    114±6ms  
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.76±0.06ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        3.74±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize           47.9±1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.07±0.04ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write          42.5±30ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.10±0.07ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            175±4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            176±2ms
| Change   | Before [eb9d3400]    | After [ad1b605c]    |   Ratio | Benchmark (Parameter)                                          |
|----------|----------------------|---------------------|---------|----------------------------------------------------------------|
| -        | 49.2±2ms             | 44.6±0.6ms          |    0.91 | bench_backtest.Walkforward.time_walkforward                    |
| -        | 47.5±2ms             | 42.7±0.5ms          |    0.9  | bench_backtest.WalkforwardScaled.time_walkforward_scaled(3, 4) |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

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: 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.77  bench_backtest.CacheDiskHit.time_cache_disk_get
   0.80  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.13  bench_backtest.IndicatorParallel.time_indicator_set_call_parallel(200, 5)  (baseline 298.887ms)

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 ad1b605c 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--)......
[12.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)...........
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).........
[25.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[25.00%] · For pybroker commit ad1b605c (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--)......
[37.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)..........
[42.92%] ··· Running (bench_backtest.WalkforwardModels.time_walkforward_models--)......
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).........
[50.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[50.00%] · For pybroker commit ad1b605c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            102±2ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          459±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  29.1±0.4μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.76±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.8±0.06ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           22.9±0.1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.4±0.07ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.7±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             33.2±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            19.6±0.6μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      19.9±0.1ms 
                 200      47.3±0.3ms 
                 500      107±0.4ms  
             =========== ============

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

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.69±0.05μs 
              100000     1.55±0ms  
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.67±0.09μs 
              100000     1.56±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== ============
              length              
             -------- ------------
               1000    2.56±0.1μs 
              100000    115±1μs   
             ======== ============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.8±0.05μs 
              100000     3.37±0ms  
             ======== =============

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

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      125±10ms 
                 200      339±50ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.56±0.09ms   20.4±0.2ms 
                 200       37.2±0.5ms   80.6±0.7ms 
                 500        95.0±1ms     204±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.25±0.8ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.13±0.03ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.03±0.01ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.7±0.9μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        752±4ms  
                    True        455±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.31±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.07±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.34±0.03ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.3±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.10±0.02ms   2.29±0.01ms 
                  10      2.22±0.04ms   5.41±0.02ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             66.6±0.9ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         65.6±0.2ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            213±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            347±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            388±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          382±0.9ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            383±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            389±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           90.1±1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar           694±20ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         63.1±0.4ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      44.9±0.6ms   90.3±9ms 
                 3      63.4±0.9ms   143±10ms 
                 10      85.0±2ms    184±10ms 
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.56±0.04ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.46±0.05ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         63.4±0.8ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.52±0.06ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.4±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.54±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          263±0.3ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          266±0.9ms
[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±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          598±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    28.8±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.88±0.07μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.9±0.1ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          23.2±0.08ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           25.6±0.7ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.6±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.6μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.3±0.4ms 
                 200      49.0±0.7ms 
                 500      107±0.6ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.68±0.02μs 
              100000     715±9μs   
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== ============
              length              
             -------- ------------
               1000    6.67±0.1μs 
              100000    1.55±0ms  
             ======== ============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.79±0.05μs 
              100000     1.56±0ms  
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.55±0.08μs 
              100000     116±3μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.8±0.08μs 
              100000   3.37±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.38±0.04μs 
              100000     748±3μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      127±5ms  
                 200      299±50ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.50±0.04ms   20.2±0.1ms 
                 200       37.0±0.4ms    80.5±1ms  
                 500       95.4±0.2ms    203±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.55±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.13±0.03ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.03±0.05ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.1±0.8μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        740±10ms 
                    True        453±40ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.29±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.04±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.26±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.7±0.4ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.10±0.01ms   2.25±0.03ms 
                  10      2.23±0.01ms    5.53±0.1ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             65.6±0.8ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         65.5±0.2ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            214±1ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            348±1ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            392±4ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          384±0.4ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            381±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            388±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         89.3±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            685±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         63.3±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      44.7±0.4ms   91.3±7ms 
                 3      64.0±0.7ms   143±10ms 
                 10     84.9±0.7ms   175±20ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large           2.54±0ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.48±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         63.6±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.44±0.04ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.0±0.2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.57±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            265±1ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            266±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.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.90  bench_backtest.CacheL1Hit.time_cache_l1_get
   0.66  bench_backtest.IndicatorKernels.time_returnv(1000)

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.13  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled  (baseline 5.71262ms)

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 ad1b605c 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--)....
[11.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[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 ad1b605c (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.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--)......
[39.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)........
[44.34%] ··· Running (bench_backtest.WalkforwardModelsPerSymbol.time_walkforward_models_per_symbol--).....
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit ad1b605c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop           98.9±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           518±40μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  27.8±0.2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            3.21±0.08μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.7±0.06ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          23.3±0.05ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.3±0.06ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.3±0.6μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           34.6±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.4±0.3μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.2±0.4ms 
                 200      48.4±0.5ms 
                 500      108±0.9ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    6.86±0.2μs 
              100000    1.62±0ms  
             ======== ============

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.74±0.03μs 
              100000     348±7μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.0±0.03μs 
              100000   4.38±0.02ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.46±0.07μs 
              100000     971±4μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      137±4ms  
                 200      330±10ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.44±0.05ms   20.1±0.3ms 
                 200       37.5±0.2ms   78.9±0.5ms 
                 500       96.1±0.5ms    203±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.45±0.4ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.12±0.02ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.05±0.09ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           53.1±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        719±4ms  
                    True        448±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.31±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.03±0.06ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.23±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         68.3±0.3ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.11±0.01ms   2.35±0.02ms 
                  10      2.25±0.02ms   5.48±0.05ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             63.0±0.3ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         62.8±0.1ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          197±0.5ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            272±1ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            348±3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            348±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          342±0.3ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            356±7ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         86.5±0.3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            648±5ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         60.5±0.7ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============= ============
             --                 symbols          
             --------- --------------------------
              windows        4            12     
             ========= ============= ============
                 1      42.9±0.09ms   85.8±0.3ms 
                 3       60.2±0.2ms   122±0.5ms  
                 10      80.8±0.4ms   167±0.2ms  
             ========= ============= ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.53±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.36±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.0±0.3ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.47±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.8±0.1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.50±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          252±0.7ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            253±1ms
[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.6±0.6ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           512±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  27.5±0.6μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.57±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.9±0.07ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           24.0±0.8ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           25.2±0.1ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.9±0.3μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           34.6±0.8μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            21.0±0.7μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.4±0.1ms 
                 200      49.0±0.6ms 
                 500       110±2ms   
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.70±0.02μs 
              100000   1.65±0.01ms 
             ======== =============

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

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== ============
              length              
             -------- ------------
               1000    6.90±0.1μs 
              100000    1.81±0ms  
             ======== ============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== ==========
              length            
             -------- ----------
               1000    4.17±1μs 
              100000   345±6μs  
             ======== ==========

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.0±0.05μs 
              100000   4.39±0.02ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.49±0.05μs 
              100000     976±7μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      139±4ms  
                 200      321±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.52±0.08ms   20.0±0.3ms 
                 200       37.9±0.4ms   80.0±0.4ms 
                 500       98.5±0.9ms   203±0.7ms  
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.71±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.12±0.03ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.05±0.02ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           55.6±2μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        731±2ms  
                    True        460±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.33±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.04±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         4.38±0.1ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         70.2±0.1ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.11±0.01ms   2.34±0.02ms 
                  10      2.25±0.03ms    5.61±0.2ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             64.8±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         64.6±0.4ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            200±2ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               252M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            277±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          348±0.2ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          348±0.5ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          343±0.7ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            353±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           91.9±3ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            647±1ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         60.9±0.3ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      43.7±0.2ms   86.6±0.5ms 
                 3       61.5±2ms     124±1ms   
                 10      82.4±2ms     171±3ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.60±0.4ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.43±0.02ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize           60.8±2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.57±0.09ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.0±0.4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.54±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            253±1ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          253±0.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.

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