Skip to content

chore(deps): Update sphinx-intl requirement from >=2.3.2 to >=2.4.0 - #324

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/sphinx-intl-gte-2.4.0
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/sphinx-intl-gte-2.4.0

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on sphinx-intl to permit the latest version.

Release notes

Sourced from sphinx-intl's releases.

2.4.0

Environments

Features

Internals

Full Changelog: sphinx-doc/sphinx-intl@2.3.2...2.4.0

Changelog

Sourced from sphinx-intl's changelog.

2.4.0 (2026/08/30)

Environments

Incompatibility

Features

Bug Fixes

Documentation

Internals

2.3.2 (2025/08/02)

Environments

Incompatibility

Features

Bug Fixes

Documentation

Internals

... (truncated)

Commits
  • fe7d98e Update changes for 2.4.0 release
  • 4832679 Update changes for stat exit status
  • 508e623 Make stat exit status indicate translation health (#143)
  • 51d9284 Update changes for 2.4.0 release
  • 2338a43 chore: ignore local worktrees
  • a0efa6e Drop Python-3.9 support and add Python-3.15 (#142)
  • d2a6f1c Bump the all-github-actions group across 1 directory with 3 updates (#140)
  • c412f28 fix for lint (#141)
  • 468913f Bump ghcr.io/devcontainers/features/docker-in-docker (#138)
  • e6b1048 Bump sigstore/gh-action-sigstore-python in the all-github-actions group (#136)
  • 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 [sphinx-intl](https://github.com/sphinx-doc/sphinx-intl) to permit the latest version.
- [Release notes](https://github.com/sphinx-doc/sphinx-intl/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx-intl/blob/master/CHANGES.rst)
- [Commits](sphinx-doc/sphinx-intl@2.3.2...2.4.0)

---
updated-dependencies:
- dependency-name: sphinx-intl
  dependency-version: 2.4.0
  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 7, 2026
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.14)

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.89  bench_backtest.WalkforwardScaled.time_walkforward_scaled(1, 12)
   0.90  bench_data.YFinanceMultiSymbol.time_yfinance_reshape

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.18  bench_backtest.CacheHit.time_cache_get  (baseline 16.3115us) [I/O-bound, never blocks]
   1.14  bench_backtest.CacheL1Hit.time_cache_l1_get  (baseline 1.9955us)
   1.15  bench_backtest.EvalKernels.time_bca_boot_conf  (baseline 15.3603ms)
   1.14  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled  (baseline 3.46063ms)
   1.26  bench_data.DataSourceCacheWrite.time_cache_write  (baseline 46.8367ms) [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 9847c84f 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 9847c84f (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--).........
[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 9847c84f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop           62.1±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           461±50μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    19.3±2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.27±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        7.50±0.08ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           17.7±0.4ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           17.4±0.4ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            5.74±0.2μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           19.8±0.1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            8.86±0.1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      13.0±0.2ms 
                 200      30.1±0.8ms 
                 500       72.5±7ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    6.23±0.5μs 
              100000    566±6μs   
             ======== ============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000     5.46±0.1μs 
              100000   1.19±0.02ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000     5.50±0.2μs 
              100000   1.22±0.01ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    1.59±0.02μs 
              100000    81.1±0.5μs 
             ======== =============

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

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

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      77.9±5ms 
                 200      189±8ms  
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ==========
             --                n_indicators     
             ----------- -----------------------
              n_symbols       1           5     
             =========== ============ ==========
                  50      6.34±0.1ms   14.2±1ms 
                 200      23.5±0.2ms   55.5±1ms 
                 500       62.4±2ms    138±2ms  
             =========== ============ ==========

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         3.95±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           753±30μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           692±20μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           37.8±3μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        482±6ms  
                    True        233±40ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.20±0.03ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.02±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.82±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           51.3±2ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         695±10μs    1.47±0.02ms 
                  10      1.40±0.01ms   3.70±0.05ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                259M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             45.3±0.7ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           48.7±3ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            144±9ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               267M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            219±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            237±5ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            235±1ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            235±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          237±0.5ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         59.5±0.1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            412±4ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         42.2±0.1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      30.1±0.3ms   58.3±3ms 
                 3       43.2±2ms    92.7±3ms 
                 10     57.9±0.8ms   116±7ms  
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.68±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi         3.79±0.2ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize           46.5±3ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.00±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write          59.1±60ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape           1.02±0ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          172±0.7ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            174±1ms
[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         62.6±0.7ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           468±90μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    16.3±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.00±0.4μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        7.44±0.03ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           15.4±0.2ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf             17.4±1ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            5.71±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.92±0.1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      13.2±0.2ms 
                 200      30.4±0.7ms 
                 500      66.9±0.2ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    5.79±0.1μs 
              100000    557±7μs   
             ======== ============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    5.39±0.07μs 
              100000   1.18±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    5.36±0.03μs 
              100000   1.20±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    1.64±0.03μs 
              100000     81.6±1μs  
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    11.9±0.07μs 
              100000   2.58±0.04ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.03±0.1μs 
              100000    482±10μs  
             ======== ============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      80.9±3ms 
                 200      193±9ms  
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      6.29±0.08ms   13.5±0.1ms 
                 200       23.7±0.4ms   52.9±0.2ms 
                 500       60.7±0.5ms    136±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         3.46±0.5ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            756±4μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           673±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         39.3±0.5μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        484±8ms 
                    True        226±3ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.15±0.01ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.04±0.03ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        2.86±0.06ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         50.1±0.1ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         704±7μs     1.45±0.01ms 
                  10      1.42±0.03ms   3.66±0.06ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               45.8±1ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         44.3±0.3ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            139±4ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               267M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            215±1ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          236±0.4ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            236±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            237±3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            237±2ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         59.6±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            413±4ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         42.5±0.4ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      30.5±0.6ms   65.4±4ms 
                 3      42.3±0.4ms   93.6±3ms 
                 10     56.8±0.3ms   119±7ms  
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.68±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        3.76±0.08ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         47.6±0.5ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.05±0.04ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write          46.8±70ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.13±0.06ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            182±9ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage           178±10ms
| Change   | Before [eb9d3400]    | After [9847c84f]    |   Ratio | Benchmark (Parameter)                                |
|----------|----------------------|---------------------|---------|------------------------------------------------------|
| +        | 15.4±0.2ms           | 17.7±0.4ms          |    1.15 | bench_backtest.EvalKernels.time_bca_boot_conf        |
| -        | 1.13±0.06ms          | 1.02±0ms            |    0.9  | bench_data.YFinanceMultiSymbol.time_yfinance_reshape |

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

github-actions Bot commented Sep 7, 2026

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.87  bench_backtest.CacheHit.time_cache_get
   0.86  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.11  bench_backtest.IndicatorKernels.time_highv(1000)  (baseline 7.325us)

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 9847c84f 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--)......
[12.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)...........
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 9847c84f (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--)......
[37.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)...........
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).......
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit 9847c84f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         79.5±0.6ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           444±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    21.4±3μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.71±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         9.89±0.1ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           20.0±0.2ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           22.6±0.4ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            7.59±0.2μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             25.8±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            11.8±0.2μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      17.5±0.2ms 
                 200      41.7±0.5ms 
                 500       93.4±2ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     6.55±0.3μs 
              100000   1.25±0.02ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000     8.15±0.7μs 
              100000   1.76±0.03ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000     8.38±0.8μs 
              100000   1.78±0.04ms 
             ======== =============

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

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000     16.8±0.5μs 
              100000   4.29±0.08ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.45±0.3μs 
              100000    764±40μs  
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      121±2ms  
                 200      293±40ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      8.33±0.08ms   18.4±0.1ms 
                 200       33.0±0.4ms    73.9±1ms  
                 500       85.0±0.9ms    187±1ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.38±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           971±30μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           961±20μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           43.4±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        634±9ms  
                    True        317±40ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.85±0.04ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.61±0.03ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.77±0.05ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           62.2±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         925±10μs    1.98±0.02ms 
                  10      1.88±0.02ms   4.68±0.08ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               58.1±1ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         57.7±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            173±3ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            245±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            293±1ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            288±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            289±3ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            290±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           73.8±1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            532±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         56.0±0.7ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      38.7±0.6ms    76.4±2ms 
                 3      54.8±0.8ms   107±0.8ms 
                 10     71.2±0.6ms    144±3ms  
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.14±0.01ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi         4.65±0.2ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize           55.4±1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.38±0.03ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           27.9±1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.37±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            220±2ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            223±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           78.2±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           447±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    24.6±5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.60±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         9.86±0.1ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           19.7±0.2ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.2±0.3ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            7.56±0.4μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.0±0.6μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            11.8±0.6μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      17.3±0.1ms 
                 200      41.2±0.3ms 
                 500       89.8±1ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    6.74±0.2μs 
              100000    1.23±0ms  
             ======== ============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000     7.33±0.2μs 
              100000   1.64±0.07ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== ============
              length              
             -------- ------------
               1000    8.45±0.6μs 
              100000   1.83±0.1ms 
             ======== ============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.19±0.04μs 
              100000     246±10μs  
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000      17.3±1μs  
              100000   4.20±0.08ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.65±0.3μs 
              100000    773±10μs  
             ======== ============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      123±3ms  
                 200      286±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      8.14±0.2ms   17.9±0.2ms 
                 200      31.9±0.6ms    73.3±2ms  
                 500       83.9±2ms     182±4ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.23±0.5ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           911±30μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           948±40μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           41.6±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        626±10ms 
                    True        303±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.78±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.56±0.05ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         3.59±0.1ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           63.0±1ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         938±10μs    1.93±0.06ms 
                  10      1.88±0.03ms    4.55±0.1ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             57.8±0.7ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           58.0±2ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            173±3ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            243±3ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            292±3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            288±4ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            287±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            286±5ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         74.1±0.8ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            532±4ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         54.8±0.3ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      39.3±0.4ms   76.4±0.9ms 
                 3      55.5±0.5ms    105±2ms   
                 10     71.1±0.4ms    142±3ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.15±0.3ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi         4.56±0.1ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         54.6±0.7ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.40±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           32.5±4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.35±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            223±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            224±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

github-actions Bot commented Sep 7, 2026

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.10  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 421.199us) [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 9847c84f 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.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)........
[19.34%] ··· Running (bench_backtest.WalkforwardModelsPerSymbol.time_walkforward_models_per_symbol--).....
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 9847c84f (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.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 9847c84f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop        100.0±0.5ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           465±70μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    30.0±1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.24±0.3μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         10.9±0.1ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.1±0.06ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.07ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.2±0.2μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             31.5±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            17.5±0.7μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      18.9±0.2ms 
                 200      40.3±0.4ms 
                 500      86.6±0.6ms 
             =========== ============

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

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.52±0.07μs 
              100000   1.64±0.01ms 
             ======== =============

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.91±0.03μs 
              100000     329±4μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.2±0.09μs 
              100000   3.92±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    5.38±0.2μs 
              100000    909±3μs   
             ======== ============

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

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.04±0.1ms   23.0±0.2ms 
                 200      34.6±0.3ms   92.0±0.8ms 
                 500      88.9±0.4ms    231±3ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.79±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           806±10μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           929±30μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         62.3±0.5μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        809±6ms  
                    True        470±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.37±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.89±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.96±0.03ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           76.9±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         978±5μs     1.86±0.02ms 
                  10      1.85±0.01ms   4.12±0.03ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             70.3±0.5ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         71.6±0.7ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            206±3ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            297±4ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            320±1ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          314±0.6ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          312±0.6ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          320±0.8ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         88.7±0.1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            626±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         67.6±0.2ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      48.0±0.7ms   92.9±0.3ms 
                 3       66.8±1ms    132±0.7ms  
                 10     89.0±0.5ms    184±1ms   
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.12±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.54±0.07ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.6±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.48±0.03ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.9±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.55±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            269±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            269±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            100±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           421±30μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    29.5±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.03±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         10.8±0.1ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.1±0.02ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.5±0.3ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.0±0.8μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.0±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              18.0±1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      18.9±0.1ms 
                 200      40.7±0.3ms 
                 500       86.3±1ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000     8.01±0.1μs 
              100000   1.59±0.02ms 
             ======== =============

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

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.57±0.08μs 
              100000   1.64±0.01ms 
             ======== =============

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

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.2±0.06μs 
              100000   3.95±0.02ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.18±0.04μs 
              100000     905±8μs   
             ======== =============

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      8.97±0.07ms   23.1±0.2ms 
                 200       34.6±0.4ms   91.2±0.8ms 
                 500       88.2±0.6ms    231±2ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.77±0.3ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            792±9μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           918±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         62.5±0.7μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        809±3ms  
                    True        458±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.37±0.01ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.89±0.01ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.98±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         75.7±0.7ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.00±0.01ms   1.89±0.02ms 
                  10        1.83±0ms    4.20±0.03ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             69.1±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         69.6±0.6ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          203±0.7ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            297±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          316±0.8ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            312±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached           334±20ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            322±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         88.5±0.6ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            627±1ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         67.2±0.4ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      47.7±0.3ms   92.7±1ms 
                 3      67.0±0.5ms   133±2ms  
                 10     89.0±0.4ms   182±2ms  
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.12±0.01ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.46±0.02ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.1±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.42±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.4±0.5ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.58±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            270±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            272±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

github-actions Bot commented Sep 7, 2026

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.76  bench_backtest.CacheDiskHit.time_cache_disk_get
   0.84  bench_backtest.CacheL1Hit.time_cache_l1_get
   0.87  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.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.13
·· Installing 9847c84f 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.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--)......
[14.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)........
[19.34%] ··· Running (bench_backtest.WalkforwardModelsPerSymbol.time_walkforward_models_per_symbol--).....
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 9847c84f (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.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 9847c84f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          102±0.9ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          459±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  28.9±0.3μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.61±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.8±0.2ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          23.3±0.09ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           25.9±0.3ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.4±0.2μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           33.5±0.9μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.4±0.8μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.0±0.2ms 
                 200      48.8±0.7ms 
                 500       108±1ms   
             =========== ============

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

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.53±0.01μs 
              100000    114±0.5μs  
             ======== =============

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.39±0.01μs 
              100000    752±0.6μs  
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      122±3ms  
                 200      300±50ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.67±0.1ms   20.1±0.1ms 
                 200      37.3±0.3ms    81.5±1ms  
                 500       96.9±1ms    203±0.6ms  
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.72±1ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.15±0.03ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.04±0.01ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           52.7±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        746±6ms  
                    True        474±30ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.35±0.05ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.02±0.06ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.35±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         78.6±0.9ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.11±0.01ms   2.29±0.02ms 
                  10      2.23±0.04ms   5.56±0.04ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               68.1±2ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         67.1±0.8ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            215±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            351±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            385±3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          379±0.9ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            384±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            387±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         89.7±0.3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            684±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         65.7±0.6ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      45.1±0.5ms   91.7±10ms 
                 3       63.7±1ms     143±10ms 
                 10      84.9±1ms     177±20ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.54±0.03ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.44±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         63.0±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.48±0.06ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           27.5±1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.56±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            263±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            262±1ms
[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          101±0.3ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          602±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    29.5±2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.10±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.9±0.3ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           23.2±0.1ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.4±0.03ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.0±0.5μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             34.6±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.1±0.5μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      20.1±0.04ms 
                 200       48.4±0.3ms 
                 500        108±2ms   
             =========== =============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.60±0.04μs 
              100000     708±6μs   
             ======== =============

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

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.58±0.05μs 
              100000     118±2μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.9±0.06μs 
              100000     3.36±0ms  
             ======== =============

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

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.57±0.07ms   20.4±0.5ms 
                 200       37.5±0.3ms    80.3±1ms  
                 500        95.1±1ms     206±2ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.61±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.12±0.04ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.02±0.01ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.3±0.5μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        739±5ms  
                    True        478±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.32±0.01ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.07±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.32±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         76.9±0.4ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.09±0.02ms   2.25±0.02ms 
                  10      2.15±0.04ms   5.42±0.05ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             65.3±0.7ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         65.5±0.3ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          214±0.8ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            347±3ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            386±2ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          381±0.6ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            384±3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          385±0.9ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         89.4±0.1ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            679±5ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         63.0±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      44.0±0.1ms   89.5±9ms 
                 3      63.1±0.6ms   142±10ms 
                 10     83.2±0.9ms   178±20ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.52±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.38±0.02ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         64.0±0.1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.48±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.8±0.3ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.56±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            262±1ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          261±0.4ms
| Change   | Before [eb9d3400]    | After [9847c84f]    |   Ratio | Benchmark (Parameter)                       |
|----------|----------------------|---------------------|---------|---------------------------------------------|
| -        | 3.10±0.1μs           | 2.61±0.1μs          |    0.84 | bench_backtest.CacheL1Hit.time_cache_l1_get |

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.

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