Skip to content

chore(deps): Update ruff requirement from >=0.16.4 to >=0.16.9 - #337

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

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

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 5, 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.9

Release Notes

Released on 2026-09-24.

Preview features

  • [ruff] Avoid false positives for overloaded division (RUF069) (#28309)

Bug fixes

  • [flake8-bugbear] Avoid false positives for calls with keyword arguments (B009, B010, B043) (#28776)
  • [flake8-tidy-imports] Allow lazy imports to be used in deferred annotations (TID255) (#28767)

Rule changes

  • Update LibCST-based fixes for Python 3.15 (#28616)
  • [flake8-pyi] Mention stubs in the diagnostic message (PYI002) (#28542)

Documentation

  • Fix horizontal overflow on the rules documentation page (#28699)
  • Update rules table with category information (#28651)
  • [flake8-annotations] Clarify that ANN401 checks return types in addition to arguments (#28334)
  • [flake8-bugbear] Document type-checker interaction (B010) (#28509)
  • [flake8-comprehensions] Document map/generator exception behavior (C417) (#27794)
  • [ruff] Mention related isort settings (RUF022) (#28719)

Contributors

Install ruff 0.16.9

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.sh | sh

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.9

Released on 2026-09-24.

Preview features

  • [ruff] Avoid false positives for overloaded division (RUF069) (#28309)

Bug fixes

  • [flake8-bugbear] Avoid false positives for calls with keyword arguments (B009, B010, B043) (#28776)
  • [flake8-tidy-imports] Allow lazy imports to be used in deferred annotations (TID255) (#28767)

Rule changes

  • Update LibCST-based fixes for Python 3.15 (#28616)
  • [flake8-pyi] Mention stubs in the diagnostic message (PYI002) (#28542)

Documentation

  • Fix horizontal overflow on the rules documentation page (#28699)
  • Update rules table with category information (#28651)
  • [flake8-annotations] Clarify that ANN401 checks return types in addition to arguments (#28334)
  • [flake8-bugbear] Document type-checker interaction (B010) (#28509)
  • [flake8-comprehensions] Document map/generator exception behavior (C417) (#27794)
  • [ruff] Mention related isort settings (RUF022) (#28719)

Contributors

0.16.8

Released on 2026-09-16.

Bug fixes

  • Visit functional TypedDict keyword arguments correctly (#28584)
  • [flake8-simplify] Detect nested async with under sync parent (SIM117) (#27821)
  • [flake8-simplify] Preserve operand order in SIM109 fix (#27824)

... (truncated)

Commits
  • 0be08a2 Bump version to 0.16.9 (#28882)
  • b4920b7 Rename ruff_cli to ruff_command_line (#28881)
  • 47c751b Update dependency astral-sh/uv to v0.12.18 (#28880)
  • 8c244e5 [flake8-comprehensions] Document map/generator exception behavior (C417...
  • 5edf5a1 Use target form in rooster.version_files (#28876)
  • 915bb2b [ty] Prefer existing @ paths over response files in Ruff and ty (#28877)
  • 4710e1a ci(github): update version number in placeholder of issue template (#28871)
  • eedfc62 [ty] Propagate outer type context through cast calls (#28855)
  • ceaa6a0 [ty] Contain rendered code within Markdown fences (#28869)
  • dba0f30 authorize ruff-pre-commit dispatch via OIDC (#28867)
  • 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 [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.9)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.9
  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 Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.11)

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.85  bench_common.IntervalCompression.time_compress_5m_large

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

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 cb283b8c 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--)......
[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 cb283b8c (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--)......
[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 cb283b8c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            100±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           411±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  30.6±0.5μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.09±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.05ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           21.7±0.2ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.4±0.03ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.9±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.4±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.3±0.3μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      18.7±0.09ms 
                 200       39.7±0.2ms 
                 500        84.3±1ms  
             =========== =============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     7.86±0.1μs 
              100000   1.58±0.02ms 
             ======== =============

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.81±0.06μs 
              100000     333±10μs  
             ======== =============

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.15±0.07μs 
              100000     904±3μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      136±4ms  
                 200      321±30ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.10±0.05ms   22.9±0.2ms 
                 200       33.8±0.2ms    91.0±2ms  
                 500        88.7±1ms    230±0.5ms  
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled        5.70±0.03ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           811±20μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           926±60μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           61.1±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        807±4ms  
                    True        486±40ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.33±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.88±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.99±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         77.4±0.9ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.02±0.01ms   1.86±0.02ms 
                  10      1.80±0.01ms   4.10±0.04ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                240M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             69.3±0.5ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         69.3±0.4ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            203±1ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               248M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            294±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          322±0.7ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            319±1ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            318±3ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          324±0.8ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         88.8±0.4ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            629±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           68.3±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      48.2±0.3ms   92.4±0.4ms 
                 3      67.2±0.7ms   132±0.7ms  
                 10     88.5±0.2ms    182±1ms   
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.14±0.3ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.49±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         59.5±0.1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.45±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         25.8±0.1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.56±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            269±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            267±3ms
[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         98.7±0.2ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           390±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  29.6±0.3μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.75±0.05μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.8±0.04ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.4±0.02ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.3±0.07ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.4±0.7μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.0±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              18.3±2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      18.7±0.1ms 
                 200      40.5±0.7ms 
                 500      85.8±0.6ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.02±0.08μs 
              100000   1.61±0.01ms 
             ======== =============

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

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.92±0.04μs 
              100000     333±9μs   
             ======== =============

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

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

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      138±2ms  
                 200      316±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.18±0.3ms   23.0±0.1ms 
                 200      33.8±0.2ms   88.9±0.5ms 
                 500      87.1±0.9ms    228±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.01±0.4ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           793±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           901±20μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         61.0±0.4μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        807±2ms  
                    True        461±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.33±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.85±0.01ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.00±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         76.3±0.5ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.01±0.01ms   1.85±0.01ms 
                  10      1.80±0.01ms   4.19±0.05ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                240M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             68.4±0.4ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         69.8±0.5ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          203±0.3ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               248M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          294±0.4ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            323±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            318±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          317±0.4ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          323±0.6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           88.7±1ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            632±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         67.7±0.7ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      47.5±0.4ms   92.2±0.9ms 
                 3       66.5±1ms     132±2ms   
                 10     89.5±0.7ms    184±1ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.52±0.4ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.53±0.05ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         59.6±0.4ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.42±0.04ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.0±0.3ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.58±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            271±5ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            272±2ms
| Change   | Before [eb9d3400]    | After [cb283b8c]    |   Ratio | Benchmark (Parameter)                       |
|----------|----------------------|---------------------|---------|---------------------------------------------|
| +        | 2.75±0.05μs          | 3.09±0.2μs          |    1.13 | bench_backtest.CacheL1Hit.time_cache_l1_get |

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 Oct 5, 2026

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.12)

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:


Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.12  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 414.881us) [I/O-bound, never blocks]
   1.20  bench_backtest.EvalKernels.time_max_drawdown  (baseline 11.1255us)
   1.16  bench_backtest.EvalKernels.time_profit_factor  (baseline 27.431us)
   1.20  bench_backtest.EvalKernels.time_sharpe_ratio  (baseline 16.6655us)
   1.19  bench_common.IntervalCompression.time_compress_5m_large  (baseline 2.28664ms)

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 cb283b8c 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 cb283b8c (round 1/2):
[25.00%] ·· Building for virtualenv-py3.12
[25.00%] ·· Benchmarking virtualenv-py3.12
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[49.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[50.00%] · For pybroker commit cb283b8c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         98.8±0.7ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           464±30μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.1±0.5μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.01±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.3±0.3ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           22.1±0.5ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.7±0.2ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown              13.3±1μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             31.9±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.0±0.5μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.7±0.3ms 
                 200      48.2±0.4ms 
                 500      105±0.9ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.39±0.09μs 
              100000   1.63±0.01ms 
             ======== =============

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.14±0.09μs 
              100000     330±6μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.4±0.05μs 
              100000   3.97±0.02ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.48±0.08μs 
              100000     908±5μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      157±7ms  
                 200      387±10ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.5±0.1ms   25.7±0.5ms 
                 200      41.3±0.7ms   101±0.7ms  
                 500       105±2ms      256±2ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.60±1ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.06±0.02ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.03±0.01ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           62.1±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        856±2ms 
                    True        462±4ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.79±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.26±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.58±0.03ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           81.2±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.21±0.02ms   2.39±0.02ms 
                  10      2.28±0.01ms   5.34±0.03ms 
             =========== ============= =============

[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                239M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             74.9±0.8ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         74.7±0.8ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            219±1ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               247M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            312±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          378±0.8ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          372±0.6ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            374±3ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            381±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         91.0±0.2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            719±1ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           72.7±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      51.3±0.4ms   97.3±0.3ms 
                 3      72.8±0.7ms    140±1ms   
                 10     94.9±0.8ms    192±1ms   
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.72±0.5ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.22±0.04ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         69.3±0.8ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.63±0.03ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.9±0.4ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.72±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            286±4ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            288±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         97.3±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           415±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  31.9±0.2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.93±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.0±0.02ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.6±0.01ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.7±0.1ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.1±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.4±0.7μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.7±0.5μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.2±0.2ms 
                 200      46.8±0.4ms 
                 500      102±0.7ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.65±0.09μs 
              100000     1.58±0ms  
             ======== =============

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

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

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

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

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

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= =============
             --                  n_indicators       
             ----------- ---------------------------
              n_symbols        1             5      
             =========== ============= =============
                  50      10.2±0.09ms   24.7±0.09ms 
                 200       39.7±0.5ms     98.7±1ms  
                 500       102±0.5ms      252±2ms   
             =========== ============= =============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.59±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.04±0.01ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store            990±8μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         62.5±0.9μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        855±3ms 
                    True        459±5ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.74±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.26±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.49±0.03ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         80.6±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.35±0.02ms 
                  10      2.29±0.02ms   5.35±0.05ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                239M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             74.3±0.5ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         74.7±0.5ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          219±0.7ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               247M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            310±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          375±0.3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            370±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          372±0.4ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            378±3ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         90.8±0.6ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            722±5ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         70.5±0.6ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      50.6±0.7ms   98.3±0.6ms 
                 3       70.8±1ms     139±2ms   
                 10     94.5±0.9ms   191±0.5ms  
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.29±0.03ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.13±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         68.5±0.3ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.63±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.5±0.4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.71±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            287±3ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            287±5ms
| Change   | Before [eb9d3400]    | After [cb283b8c]    |   Ratio | Benchmark (Parameter)                           |
|----------|----------------------|---------------------|---------|-------------------------------------------------|
| +        | 11.1±0.2μs           | 13.3±1μs            |    1.2  | bench_backtest.EvalKernels.time_max_drawdown    |
| +        | 16.7±0.5μs           | 20.0±0.5μs          |    1.2  | bench_backtest.EvalKernels.time_sharpe_ratio    |
| +        | 27.4±0.7μs           | 31.9±2μs            |    1.16 | bench_backtest.EvalKernels.time_profit_factor   |
| +        | 415±20μs             | 464±30μs            |    1.12 | bench_backtest.CacheDiskHit.time_cache_disk_get |

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 Oct 5, 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.90  bench_backtest.CacheDiskHit.time_cache_disk_get

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 cb283b8c into virtualenv-py3.13
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.13
[ 0.00%] ·· Benchmarking virtualenv-py3.13
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[11.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[24.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[25.00%] · For pybroker commit cb283b8c (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 cb283b8c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            101±2ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          462±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  30.2±0.1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.86±0.1μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         12.0±0.2ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          23.8±0.01ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           26.4±0.3ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.5±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           34.4±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            21.2±0.5μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.5±0.1ms 
                 200      49.0±0.4ms 
                 500       107±2ms   
             =========== ============

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

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

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

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.51±0.07μs 
              100000    115±0.3μs  
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.7±0.03μs 
              100000   3.37±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.35±0.04μs 
              100000     751±5μs   
             ======== =============

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

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.51±0.2ms   20.1±0.1ms 
                 200      37.9±0.7ms    82.2±1ms  
                 500       95.8±2ms     204±1ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.52±0.4ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.10±0.03ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.03±0.02ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.3±0.5μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        745±5ms  
                    True        478±30ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.32±0.06ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.04±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.29±0.03ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         78.1±0.5ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.10±0.01ms   2.25±0.02ms 
                  10      2.27±0.04ms   5.61±0.04ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                241M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               67.9±1ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         66.1±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            214±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               249M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            346±1ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            389±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            387±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            387±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            394±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         90.0±0.2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            681±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         64.8±0.7ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      44.8±0.1ms   93.2±9ms 
                 3      64.3±0.6ms   144±10ms 
                 10      84.5±4ms    179±20ms 
             ========= ============ ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.54±0.01ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.47±0.05ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         64.2±0.4ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.43±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.0±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.56±0.03ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          265±0.8ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            263±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          102±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          512±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  28.9±0.3μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.94±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        12.0±0.06ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           23.9±0.2ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          26.1±0.01ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.8±0.3μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           34.0±0.8μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            20.4±0.9μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.4±0.2ms 
                 200      48.8±0.4ms 
                 500      108±0.8ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.65±0.06μs 
              100000     711±7μs   
             ======== =============

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

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.55±0.03μs 
              100000     117±2μs   
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.35±0.05μs 
              100000     746±2μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      124±3ms  
                 200      297±40ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.63±0.1ms   20.5±0.3ms 
                 200      37.8±0.6ms   81.7±0.8ms 
                 500       97.0±2ms    206±0.8ms  
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.66±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.10±0.02ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.02±0.01ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         51.6±0.6μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        744±5ms  
                    True        476±30ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.32±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.02±0.04ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.28±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           77.2±3ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         1.07±0ms    2.27±0.05ms 
                  10      2.27±0.08ms    5.54±0.1ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                241M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               67.3±1ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         66.5±0.3ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          214±0.8ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               249M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            348±1ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            388±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            388±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            384±1ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            391±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         92.4±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            682±6ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         64.2±0.7ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      45.7±0.6ms   92.2±9ms 
                 3      63.7±0.6ms   144±10ms 
                 10      85.7±4ms    180±20ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.56±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.48±0.01ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         64.2±0.5ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.44±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.1±0.2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.56±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          263±0.5ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          263±0.3ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

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

@github-actions

github-actions Bot commented Oct 5, 2026

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.90  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.13
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.14
·· Installing cb283b8c into virtualenv-py3.14
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.14
[ 0.00%] ·· Benchmarking virtualenv-py3.14
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[24.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[25.00%] · For pybroker commit cb283b8c (round 1/2):
[25.00%] ·· Building for virtualenv-py3.14
[25.00%] ·· Benchmarking virtualenv-py3.14
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[36.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[49.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[50.00%] · For pybroker commit cb283b8c (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          111±0.1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          474±200μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.2±0.6μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.93±0.08μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.0±0.03ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.4±0.05ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           24.0±0.5ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.1±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.0±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              17.9±1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.1±0.2ms 
                 200      45.7±0.5ms 
                 500      98.5±0.8ms 
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.09±0.04μs 
              100000     695±10μs  
             ======== =============

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

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.00±0.07μs 
              100000     1.43±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== ============
              length              
             -------- ------------
               1000    3.26±0.1μs 
              100000    109±3μs   
             ======== ============

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

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

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      140±5ms  
                 200      343±30ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.1±0.1ms   25.3±0.3ms 
                 200      39.9±0.7ms   99.4±0.7ms 
                 500      99.2±0.5ms    255±3ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.61±0.4ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           982±10μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store          944±100μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         78.5±0.9μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        838±8ms 
                    True        449±7ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.85±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.36±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.53±0.05ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         91.3±0.8ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.06ms   2.34±0.04ms 
                  10      2.24±0.03ms   5.17±0.05ms 
             =========== ============= =============

[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                254M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               79.7±1ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         79.9±0.5ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          239±0.4ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               263M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            380±3ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            411±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          407±0.9ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            406±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          417±0.3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         99.5±0.3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            750±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         77.8±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      54.3±0.3ms   106±0.8ms 
                 3       78.0±1ms     161±9ms  
                 10      103±2ms      211±9ms  
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.31±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.49±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         76.4±0.1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.45±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.4±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.74±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            312±4ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            316±4ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.14
[75.00%] ·· Benchmarking virtualenv-py3.14
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            112±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           496±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.4±0.2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            3.11±0.07μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.1±0.03ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.3±0.02ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.4±0.06ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.0±0.8μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             30.4±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            17.6±0.6μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.4±0.2ms 
                 200      45.9±0.5ms 
                 500       99.7±1ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    8.41±0.4μs 
              100000    720±6μs   
             ======== ============

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

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.27±0.09μs 
              100000   1.43±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.23±0.07μs 
              100000     112±2μs   
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== ============
              length              
             -------- ------------
               1000    5.47±0.2μs 
              100000    678±3μs   
             ======== ============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      136±6ms  
                 200      348±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.2±0.1ms   25.7±0.5ms 
                 200      39.3±0.6ms   99.8±0.5ms 
                 500       99.9±1ms    254±0.8ms  
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.21±0.4ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           983±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store          909±100μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           80.4±4μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        832±7ms 
                    True        449±4ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.82±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.31±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.51±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         90.6±0.5ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.21±0.01ms   2.29±0.03ms 
                  10      2.23±0.03ms   5.06±0.06ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                254M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             80.3±0.5ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         79.7±0.5ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          238±0.2ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               262M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            380±4ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            413±2ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            406±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached          406±0.4ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          413±0.4ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         99.1±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            751±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         76.9±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ==========
             --                symbols        
             --------- -----------------------
              windows       4           12    
             ========= ============ ==========
                 1      54.0±0.4ms   105±2ms  
                 3       77.5±1ms    160±8ms  
                 10     104±0.6ms    210±10ms 
             ========= ============ ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.28±0.03ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.52±0.05ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         77.2±0.6ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.49±0.03ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write        28.5±0.09ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.72±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            307±1ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            310±3ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

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

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants