Skip to content

chore(deps): Update ruff requirement from >=0.16.4 to >=0.16.6 - #329

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/ruff-gte-0.16.6
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/ruff-gte-0.16.6

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on ruff to permit the latest version.

Release notes

Sourced from ruff's releases.

0.16.6

Release Notes

Released on 2026-09-03.

Preview features

  • Move pytest-fixture-autouse to the restriction category (#28219)
  • [flake8-pytest-style] Add an autofix for PT020 (#27993)
  • [flake8-tidy-imports] Prevent fix loop between TID254 and TID255 (#28262)
  • [isort] Exclude pragma comments from line length calculation (I001) (#27313)

Bug fixes

  • Validate unary expressions when parsing (#28233)
  • [flake8-async, pylint] Recognize builtins.open (ASYNC230, PLW1514) (#28021)
  • [flake8-bugbear] Fix panic on match subjects (B031) (#27781)
  • [flake8-datetimez] Reject tzinfo=None for datetime bounds (DTZ901) (#28022)
  • [flake8-pytest-style] Avoid duplicate PT017 diagnostics (#27918)
  • [ruff] Remove lint.external hint for Ruff-specific suppressions (RUF102) (#27923)

Rule changes

  • [flake8-use-pathlib] Add display-only fix for os.listdir (PTH208) (#28027)

Documentation

  • Add another example and glob reference for lint.per-file-ignores (#28106)
  • Add duplicate work guidance (#28229)
  • [flake8-async] Document thread offloading (ASYNC240) (#28008)
  • [pyupgrade] Clarify default encoding argument handling (UP012) (#27315)

Other changes

  • Allow unary plus in match patterns on Python 3.15 (#28231)

Contributors

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.6

Released on 2026-09-03.

Preview features

  • Move pytest-fixture-autouse to the restriction category (#28219)
  • [flake8-pytest-style] Add an autofix for PT020 (#27993)
  • [flake8-tidy-imports] Prevent fix loop between TID254 and TID255 (#28262)
  • [isort] Exclude pragma comments from line length calculation (I001) (#27313)

Bug fixes

  • Validate unary expressions when parsing (#28233)
  • [flake8-async, pylint] Recognize builtins.open (ASYNC230, PLW1514) (#28021)
  • [flake8-bugbear] Fix panic on match subjects (B031) (#27781)
  • [flake8-datetimez] Reject tzinfo=None for datetime bounds (DTZ901) (#28022)
  • [flake8-pytest-style] Avoid duplicate PT017 diagnostics (#27918)
  • [ruff] Remove lint.external hint for Ruff-specific suppressions (RUF102) (#27923)

Rule changes

  • [flake8-use-pathlib] Add display-only fix for os.listdir (PTH208) (#28027)

Documentation

  • Add another example and glob reference for lint.per-file-ignores (#28106)
  • Add duplicate work guidance (#28229)
  • [flake8-async] Document thread offloading (ASYNC240) (#28008)
  • [pyupgrade] Clarify default encoding argument handling (UP012) (#27315)

Other changes

  • Allow unary plus in match patterns on Python 3.15 (#28231)

Contributors

... (truncated)

Commits

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 [ruff](https://github.com/astral-sh/ruff) to permit the latest version.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.16.4...0.16.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.6
  dependency-type: direct:production
...

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

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.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:


Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.22  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 476.576us) [I/O-bound, never blocks]
   1.12  bench_backtest.CacheHit.time_cache_get  (baseline 19.8545us) [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.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.13
·· Installing 3d9f6cd6 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.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--).........
[19.81%] ··· Running (bench_backtest.WalkforwardMultiWindow.time_walkforward_multi_window--).........
[24.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[25.00%] · For pybroker commit 3d9f6cd6 (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.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--)........
[48.58%] ··· Running (bench_data.DataSourceCacheWrite.time_cache_write--)....
[50.00%] · For pybroker commit 3d9f6cd6 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         72.7±0.9ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           580±80μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    22.2±1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             1.89±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        8.81±0.03ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           17.8±0.2ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          20.2±0.07ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown           7.61±0.06μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           24.4±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            11.3±0.3μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      15.7±0.08ms 
                 200       37.5±0.6ms 
                 500       83.5±0.9ms 
             =========== =============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    5.66±0.09μs 
              100000     597±10μs  
             ======== =============

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

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000     6.96±0.2μs 
              100000   1.53±0.04ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== ============
              length              
             -------- ------------
               1000    2.14±0.2μs 
              100000    95.3±3μs  
             ======== ============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000      15.8±1μs  
              100000   3.21±0.04ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.05±0.05μs 
              100000     556±8μs   
             ======== =============

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

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= =============
             --                  n_indicators       
             ----------- ---------------------------
              n_symbols        1             5      
             =========== ============= =============
                  50      7.67±0.07ms   16.8±0.06ms 
                 200       29.3±0.2ms    66.3±0.8ms 
                 500       75.4±0.7ms     171±5ms   
             =========== ============= =============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.71±0.1ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           875±30μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           903±40μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         38.9±0.4μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        543±6ms  
                    True        268±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.61±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.38±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.37±0.05ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         62.2±0.3ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         831±20μs    1.79±0.04ms 
                  10      1.71±0.06ms   4.27±0.03ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               55.1±1ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           56.0±1ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            167±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            273±5ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            293±4ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            289±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            289±3ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            293±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           69.2±1ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            513±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           50.9±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      36.7±1ms   73.9±6ms 
                 3      52.9±3ms   118±7ms  
                 10     68.2±2ms   143±10ms 
             ========= ========== ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.92±0.03ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        4.22±0.09ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         54.1±0.9ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.19±0.06ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           33.6±4ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.27±0.06ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            215±4ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            211±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.13
[75.00%] ·· Benchmarking virtualenv-py3.13
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop           72.8±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           477±80μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    19.9±2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            1.91±0.03μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        8.86±0.08ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           18.2±0.3ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          20.3±0.05ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            7.54±0.6μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           24.6±0.4μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            11.2±0.1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      15.8±0.2ms 
                 200      38.3±0.8ms 
                 500       83.7±1ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    5.83±0.3μs 
              100000    608±30μs  
             ======== ============

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

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000     6.50±0.3μs 
              100000   1.50±0.08ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.05±0.08μs 
              100000    95.9±0.4μs 
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000     14.4±0.5μs 
              100000   3.22±0.06ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    3.96±0.06μs 
              100000     561±7μs   
             ======== =============

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      7.69±0.07ms   17.2±0.4ms 
                 200        30.3±1ms     66.4±1ms  
                 500       76.0±0.8ms    172±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.44±0.2ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            846±9μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           852±70μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           40.5±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        539±3ms  
                    True        259±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.61±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.38±0.04ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.38±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         62.4±0.3ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         835±10μs    1.77±0.06ms 
                  10      1.69±0.01ms   4.24±0.06ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               53.3±1ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         53.5±0.4ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            167±2ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            269±6ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            289±4ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            286±3ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            286±4ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            291±3ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         68.2±0.9ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            512±5ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         51.5±0.8ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      36.2±0.2ms   73.6±7ms 
                 3       51.8±1ms    114±8ms  
                 10      69.9±2ms    139±10ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.91±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        4.23±0.04ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         54.3±0.4ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.22±0.03ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           36.1±2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.26±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            209±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            210±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.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:


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 3d9f6cd6 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.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)........
[18.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 3d9f6cd6 (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.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)........
[43.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit 3d9f6cd6 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         97.5±0.3ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           391±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  31.4±0.5μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.97±0.08μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.04ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           21.0±0.1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf             24.5±2ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            10.9±0.1μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.0±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.3±0.1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      21.2±0.04ms 
                 200       47.2±0.2ms 
                 500       103±0.4ms  
             =========== =============

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

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.91±0.06μs 
              100000     1.63±0ms  
             ======== =============

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.23±0.04μs 
              100000     328±2μs   
             ======== =============

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.42±0.09μs 
              100000     905±5μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== =========
             --          n_indicators
             ----------- ---------
              n_symbols      5    
             =========== =========
                  50      148±7ms 
                 200      370±4ms 
             =========== =========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.2±0.04ms   24.7±0.2ms 
                 200       39.3±0.4ms   97.3±0.7ms 
                 500        103±1ms     246±0.8ms  
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.60±0.8ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.03±0.02ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.00±0.08ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         62.1±0.7μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        843±2ms 
                    True        456±2ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.79±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.27±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.43±0.01ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         80.6±0.2ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.35±0.01ms 
                  10      2.24±0.01ms   5.28±0.02ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             73.7±0.7ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         73.4±0.3ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          218±0.2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            309±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            377±4ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          368±0.7ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          368±0.8ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          374±0.5ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         90.0±0.2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            722±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         70.7±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============= ============
             --                 symbols          
             --------- --------------------------
              windows        4            12     
             ========= ============= ============
                 1       50.2±0.1ms   98.0±0.2ms 
                 3      70.3±0.08ms   138±0.3ms  
                 10      94.2±0.3ms   190±0.3ms  
             ========= ============= ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.30±0.4ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.15±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         68.5±0.3ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.53±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.9±0.1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.70±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          284±0.3ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          285±0.8ms
[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         97.4±0.5ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           386±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  31.5±0.5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.92±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.8±0.02ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.03ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.8±0.04ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.1±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.7±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.3±0.2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      21.2±0.07ms 
                 200       47.4±0.1ms 
                 500       103±0.6ms  
             =========== =============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000     8.22±0.2μs 
              100000   1.58±0.01ms 
             ======== =============

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

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.15±0.08μs 
              100000     330±5μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.4±0.06μs 
              100000   3.92±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.48±0.07μs 
              100000     907±4μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      151±8ms  
                 200      387±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.4±0.09ms   24.6±0.1ms 
                 200       39.3±0.4ms   96.3±0.5ms 
                 500        101±1ms      245±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.93±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.02±0.03ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           989±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           61.6±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        852±2ms 
                    True        464±3ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.80±0.04ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.27±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.49±0.01ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         80.9±0.5ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.34±0.04ms 
                  10      2.25±0.01ms   5.31±0.02ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             73.5±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward        73.5±0.08ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          218±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            311±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          373±0.3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          369±0.6ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          367±0.8ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          376±0.5ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         90.7±0.2ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            719±1ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         70.7±0.3ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      50.4±0.1ms   97.0±0.2ms 
                 3      70.9±0.2ms   139±0.7ms  
                 10     93.2±0.3ms   191±0.2ms  
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.27±0.3ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.08±0.04ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         68.4±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.51±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.1±0.2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.70±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          283±0.4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          284±0.2ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

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

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.14)

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

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

Faster (never blocks):
   0.75  bench_backtest.CacheL1Hit.time_cache_l1_get

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.12  bench_backtest.ModelTrainParallel.time_train_models_parallel(True)  (baseline 313.314ms)

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 3d9f6cd6 into virtualenv-py3.14
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.14
[ 0.00%] ·· Benchmarking virtualenv-py3.14
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[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 3d9f6cd6 (round 1/2):
[25.00%] ·· Building for virtualenv-py3.14
[25.00%] ·· Benchmarking virtualenv-py3.14
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[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 3d9f6cd6 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         86.6±0.5ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           478±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    22.8±3μ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         10.0±0.1ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf             20.1±1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.8±0.06ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            8.04±0.5μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.6±0.4μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            12.7±0.1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      17.7±0.3ms 
                 200      42.1±0.2ms 
                 500      95.7±0.4ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    6.44±0.1μs 
              100000    684±9μs   
             ======== ============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000     7.36±0.2μs 
              100000   1.53±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000     7.31±0.2μs 
              100000   1.58±0.02ms 
             ======== =============

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

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000     16.2±0.2μs 
              100000   3.40±0.03ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.64±0.1μs 
              100000    628±10μs  
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      107±5ms  
                 200      259±40ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      8.56±0.1ms   18.7±0.1ms 
                 200      33.0±0.2ms   74.7±0.7ms 
                 500       85.0±1ms    188±0.9ms  
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.12±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           989±20μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           904±10μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           55.5±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        628±3ms  
                    True        352±40ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.00±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.71±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.78±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         70.0±0.4ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         963±9μs     2.05±0.01ms 
                  10      1.95±0.01ms   4.82±0.09ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             61.4±0.5ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         60.8±0.2ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            187±1ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            298±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            324±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            323±1ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            323±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            330±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         82.0±0.3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            569±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         58.5±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      41.4±0.1ms   81.4±5ms 
                 3      58.6±0.6ms   124±7ms  
                 10      77.7±1ms    156±10ms 
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.16±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.05±0.09ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         64.5±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.36±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           31.6±6ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.37±0.03ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            242±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            240±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         87.0±0.8ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          481±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    20.9±1μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.02±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        9.89±0.06ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           19.7±0.2ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           22.8±0.3ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            8.34±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.9±0.4μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            13.0±0.4μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      17.7±0.1ms 
                 200      42.2±0.2ms 
                 500      94.8±0.3ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    6.25±0.3μs 
              100000    667±20μs  
             ======== ============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    7.10±0.09μs 
              100000   1.53±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000     7.53±0.1μs 
              100000   1.55±0.02ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.17±0.03μs 
              100000    101±0.6μs  
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.61±0.08μs 
              100000     626±8μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      110±5ms  
                 200      259±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      8.37±0.03ms   18.4±0.2ms 
                 200       32.4±0.2ms   73.6±0.6ms 
                 500       85.3±0.3ms    187±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.49±0.6ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           952±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           895±30μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         53.8±0.7μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        615±4ms  
                    True        313±40ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.93±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.68±0.03ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.74±0.01ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         68.5±0.8ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         960±7μs     2.05±0.02ms 
                  10      1.94±0.01ms   4.86±0.01ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                259M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             60.6±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         60.3±0.4ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            188±1ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               267M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            296±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            327±3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          323±0.7ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            321±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            326±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         81.2±0.6ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            566±1ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         58.8±0.3ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      41.6±0.1ms   81.2±5ms 
                 3      58.6±0.4ms   122±7ms  
                 10     77.6±0.8ms   157±7ms  
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.14±0.01ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        4.96±0.08ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         64.0±0.1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.36±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           33.5±4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.36±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            241±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            239±5ms
| Change   | Before [eb9d3400]    | After [3d9f6cd6]    |   Ratio | Benchmark (Parameter)                       |
|----------|----------------------|---------------------|---------|---------------------------------------------|
| -        | 3.02±0.2μs           | 2.27±0.2μs          |    0.75 | 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.

@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.34  bench_backtest.CacheL1Hit.time_cache_l1_get  (baseline 3.1055us)
   1.12  bench_backtest.EvalKernels.time_max_drawdown  (baseline 12.593us)

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 3d9f6cd6 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.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 3d9f6cd6 (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 3d9f6cd6 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          100±0.3ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           478±70μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  30.7±0.7μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             4.15±0.9μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.1±0.3ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.2±0.03ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.05ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown              14.1±2μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             30.8±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              19.8±2μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      19.2±0.3ms 
                 200      41.6±0.4ms 
                 500       86.6±1ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    7.90±0.06μs 
              100000   1.60±0.02ms 
             ======== =============

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.87±0.08μs 
              100000     343±7μs   
             ======== =============

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    5.27±0.1μs 
              100000    919±5μs   
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      141±5ms  
                 200      327±20ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.08±0.09ms   23.4±0.1ms 
                 200       34.6±0.2ms    91.9±2ms  
                 500       89.0±0.8ms    231±3ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.79±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           816±20μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           922±40μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           60.6±3μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        817±8ms  
                    True        463±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.35±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.87±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.05±0.04ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.9±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.00±0.01ms   1.87±0.01ms 
                  10      1.82±0.01ms   4.10±0.06ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             69.5±0.4ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         70.9±0.3ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          203±0.5ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            298±1ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          320±0.8ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          315±0.4ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          312±0.6ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            320±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         88.8±0.2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            636±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         67.6±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      48.0±0.2ms    93.3±1ms 
                 3      66.6±0.4ms   132±0.6ms 
                 10     90.1±0.5ms   182±0.7ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.17±0.07ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.47±0.05ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.2±0.5ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.43±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.3±0.3ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.55±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            268±2ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            272±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.11
[75.00%] ·· Benchmarking virtualenv-py3.11
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         99.9±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           436±60μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  30.3±0.9μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.11±0.3μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.0±0.1ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.2±0.03ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.5±0.3ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown              12.6±1μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             31.4±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              19.1±2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.0±0.6ms 
                 200      41.0±0.8ms 
                 500      87.8±0.8ms 
             =========== ============

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

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000     6.69±0.3μs 
              100000   1.65±0.01ms 
             ======== =============

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.89±0.04μs 
              100000     337±6μs   
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.19±0.05μs 
              100000     905±5μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      144±7ms  
                 200      338±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.15±0.1ms   23.9±0.6ms 
                 200      34.9±0.4ms    94.9±2ms  
                 500       90.7±2ms     236±1ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.05±0.4ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            825±6μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           939±10μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           62.2±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        819±10ms 
                    True        461±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.37±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled         2.96±0.1ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         4.04±0.1ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           79.6±2ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.00±0.01ms   1.88±0.02ms 
                  10      1.86±0.04ms   4.24±0.05ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             72.0±0.8ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           72.5±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            203±2ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            301±3ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            321±2ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            317±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            314±3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            324±3ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           90.6±2ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            636±3ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         70.6±0.9ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      49.1±1ms   94.2±2ms 
                 3      67.8±1ms   136±3ms  
                 10     90.5±1ms   186±5ms  
             ========= ========== ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.20±0.3ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.46±0.02ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.9±0.8ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.43±0.05ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           26.9±1ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.57±0.03ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            273±4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            271±5ms

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