Skip to content

chore(deps): Update pytest-randomly requirement from >=4.1.0 to >=5.0.0 - #330

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/pytest-randomly-gte-5.0.0
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/pytest-randomly-gte-5.0.0

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updates the requirements on pytest-randomly to permit the latest version.

Changelog

Sourced from pytest-randomly's changelog.

5.0.0 (2026-09-01)

  • Support Python 3.15.

  • Shuffle tests in a wrapper around the pytest_collection_modifyitems hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.

    Previously, pytest-randomly shuffled in a plain tryfirst hook implementation. When another plugin also implemented the hook with tryfirst, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same Dockerfile, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).

    Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.

    PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746>. Thanks to milssky for the report in Issue [#701](https://github.com/pytest-dev/pytest-randomly/issues/701) <https://github.com/pytest-dev/pytest-randomly/issues/701>.

  • Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.

    PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746>__.

  • Reset Polyfactory <https://polyfactory.litestar.dev/>__\’s default random state at the start of every test, if it is installed.

    Thanks to Rahul Kumar in PR [#735](https://github.com/pytest-dev/pytest-randomly/issues/735) <https://github.com/pytest-dev/pytest-randomly/issues/735>__.

  • Switch package build backend from setuptools to uv_build <https://docs.astral.sh/uv/concepts/build-backend/>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.

4.1.0 (2026-04-20)

  • Fix a crash with Faker installed when explicitly enabling and disabling the plugin (via -p randomly -p no:randomly).

    Thanks to mojosan77 for the report in Issue [#718](https://github.com/pytest-dev/pytest-randomly/issues/718) <https://github.com/pytest-dev/pytest-randomly/issues/718>__.

  • Drop Python 3.9 support.

4.0.1 (2025-09-12)

  • Remove the random state caching, which would grow without bound, leaking memory in long test runs. The caching was added to slightly speed up re-using the same (final) seed, but since the final seed is now different for each test, it has no effect.

    PR [#690](https://github.com/pytest-dev/pytest-randomly/issues/690) <https://github.com/pytest-dev/pytest-randomly/issues/687>__.

  • Modify Numpy seed restriction, replacing hashing with a modulo operation. The extra work to hash is unnecessary now that we generate a final seed per test with CRC32.

... (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 [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) to permit the latest version.
- [Changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-randomly@4.1.0...5.0.0)

---
updated-dependencies:
- dependency-name: pytest-randomly
  dependency-version: 5.0.0
  dependency-type: direct:production
...

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

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.91  bench_backtest.CacheHit.time_cache_get
   0.84  bench_backtest.CacheL1Hit.time_cache_l1_get
   0.90  bench_backtest.IndicatorKernels.time_returnv(1000)
   0.81  bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame(4, 504)
   0.75  bench_data.DataSourceCacheWrite.time_cache_write

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.25  bench_backtest.ExitOnLastBarPreprocess.time_exit_on_last_bar_preprocess(200)  (baseline 32.0833ms)
   1.16  bench_backtest.ExitOnLastBarPreprocess.time_exit_on_last_bar_preprocess(50)  (baseline 15.4416ms)
   1.25  bench_backtest.IndicatorKernels.time_lowv(1000)  (baseline 6.753us)
   1.12  bench_backtest.IndicatorPreprocess.time_indicator_set_call(200, 5)  (baseline 69.7065ms)
   1.40  bench_backtest.LagPrepBottlenecks.time_build_lag_feature_matrix_pooled  (baseline 1.21683ms)
   1.40  bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame(10, 1260)  (baseline 5.50675ms)
   1.28  bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame(10, 504)  (baseline 2.08119ms)
   1.11  bench_data.YFinanceMultiSymbol.time_yfinance_reshape  (baseline 1.11053ms)

::error::1 benchmark(s) at or above 10ms regressed by 1.25x or more:
   1.29  bench_backtest.IndicatorPreprocess.time_indicator_set_call(200, 1)  (25.8382ms -> 33.4085ms)
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 9cf191f0 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.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 9cf191f0 (round 1/2):
[25.00%] ·· Building for virtualenv-py3.11
[25.00%] ·· Benchmarking virtualenv-py3.11
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)............
[31.60%] ··· Running (bench_backtest.IndicatorKernels.time_highv--).......
[34.91%] ··· Running (bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled--)..........
[39.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)..........
[45.28%] ··· Running (bench_backtest.WalkforwardPerBar.time_walkforward_per_bar--)..........
[50.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[50.00%] · For pybroker commit 9cf191f0 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         77.3±0.8ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           407±20μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    16.4±1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.16±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         9.04±0.4ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           18.9±0.3ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           21.4±0.3ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            8.28±0.6μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           25.8±0.9μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            12.6±0.6μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      17.9±0.6ms 
                 200       40.1±8ms  
                 500      90.8±20ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     6.42±0.5μs 
              100000   1.14±0.02ms 
             ======== =============

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

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000      8.41±2μs  
              100000   1.77±0.05ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.08±0.04μs 
              100000     242±8μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== ============
              length              
             -------- ------------
               1000    15.8±0.5μs 
              100000   3.88±0.1ms 
             ======== ============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.06±0.3μs 
              100000    701±30μs  
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      105±3ms  
                 200      253±20ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== =========== ==========
             --               n_indicators     
             ----------- ----------------------
              n_symbols       1          5     
             =========== =========== ==========
                  50       8.50±1ms   18.1±2ms 
                 200       33.4±6ms   78.1±1ms 
                 500      105±0.9ms   199±6ms  
             =========== =========== ==========

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.98±0.3ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.70±0.07ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           823±40μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           39.9±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        573±10ms 
                    True        288±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol         2.89±0.1ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled         2.51±0.2ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags         3.88±0.1ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         55.7±0.8ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============ ============
             --                    n_days         
             ----------- -------------------------
              n_symbols      504          1260    
             =========== ============ ============
                  4       1.01±0.3ms   3.03±0.1ms 
                  10      2.66±0.1ms   7.71±0.4ms 
             =========== ============ ============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             50.6±0.6ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         51.7±0.5ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            153±3ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            218±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            226±3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            227±4ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            230±4ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            239±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           69.4±3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            445±9ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           50.1±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      35.9±0.6ms   69.5±0.9ms 
                 3      49.5±0.7ms    98.6±2ms  
                 10      66.5±2ms     135±3ms   
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         1.62±0.2ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        4.12±0.09ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         47.0±0.5ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.33±0.04ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           27.2±2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.23±0.03ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            200±2ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            200±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           73.5±3ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           426±60μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                    18.1±2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.55±0.5μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         9.25±0.2ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           19.0±0.6ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           21.6±0.7ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            7.92±0.4μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor           26.9±0.8μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            12.3±0.3μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50       15.4±2ms  
                 200      32.1±0.3ms 
                 500      91.0±20ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000     6.45±0.5μs 
              100000   1.12±0.01ms 
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000     7.33±0.4μs 
              100000   1.57±0.06ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000     6.75±0.2μs 
              100000   1.68±0.07ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== ============
              length              
             -------- ------------
               1000    2.31±0.1μs 
              100000    256±10μs  
             ======== ============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== ============
              length              
             -------- ------------
               1000    14.6±0.8μs 
              100000   3.83±0.1ms 
             ======== ============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== ============
              length              
             -------- ------------
               1000    4.30±0.3μs 
              100000    691±9μs   
             ======== ============

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50       8.49±1ms    19.4±0.4ms 
                 200      25.8±0.3ms    69.7±9ms  
                 500       103±2ms      201±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.34±0.6ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled         1.22±0.5ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           828±30μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         37.0±0.5μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        565±10ms 
                    True        281±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol         3.02±0.1ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled         2.43±0.3ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.78±0.04ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         56.1±0.8ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= ============
             --                    n_days          
             ----------- --------------------------
              n_symbols       504          1260    
             =========== ============= ============
                  4       1.24±0.05ms   3.21±0.1ms 
                  10       2.08±0.6ms    5.51±2ms  
             =========== ============= ============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               50.7±1ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         50.6±0.4ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            152±2ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               254M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          219±0.9ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            233±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            226±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            227±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          234±0.9ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         70.3±0.9ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            432±4ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           48.6±1ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      34.4±2ms   66.3±1ms 
                 3      47.3±1ms   95.3±1ms 
                 10     64.1±2ms   131±1ms  
             ========= ========== ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        1.61±0.04ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi         3.88±0.1ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize           45.7±1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.23±0.04ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           36.1±8ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.11±0.04ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            200±4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            200±3ms
| Change   | Before [eb9d3400]    | After [9cf191f0]    |   Ratio | Benchmark (Parameter)                                |
|----------|----------------------|---------------------|---------|------------------------------------------------------|
| +        | 1.11±0.04ms          | 1.23±0.03ms         |    1.11 | bench_data.YFinanceMultiSymbol.time_yfinance_reshape |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE DECREASED.

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

@github-actions

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:


Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.17  bench_backtest.IndicatorPreprocess.time_indicator_set_call(200, 1)  (baseline 29.1674ms)

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 9cf191f0 into virtualenv-py3.12
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.12
[ 0.00%] ·· Benchmarking virtualenv-py3.12
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[12.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)............
[18.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 9cf191f0 (round 1/2):
[25.00%] ·· Building for virtualenv-py3.12
[25.00%] ·· Benchmarking virtualenv-py3.12
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[37.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)............
[43.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit 9cf191f0 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         76.8±0.4ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           446±60μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    23.3±2μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.51±0.6μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        9.19±0.08ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           18.1±0.4ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          19.8±0.02ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            9.62±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.2±0.6μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              16.4±1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      15.8±0.3ms 
                 200      38.1±0.3ms 
                 500       84.8±1ms  
             =========== ============

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

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

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

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

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    3.74±0.05μs 
              100000     768±3μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      107±3ms  
                 200      261±20ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ =============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols       1             5      
             =========== ============ =============
                  50      7.40±0.1ms   15.6±0.04ms 
                 200      34.1±10ms     62.8±0.4ms 
                 500      76.3±0.7ms     159±2ms   
             =========== ============ =============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.42±0.4ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           918±30μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store            804±7μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           39.1±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        616±3ms  
                    True        349±30ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.54±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.28±0.03ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.31±0.06ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         55.2±0.4ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         876±8μs     1.88±0.04ms 
                  10      1.74±0.01ms    4.41±0.1ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             49.7±0.5ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         49.4±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          153±0.6ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          211±0.6ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            273±1ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          267±0.4ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          269±0.5ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          274±0.9ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         68.1±0.5ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar          501±0.7ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         46.6±0.3ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      32.9±0.1ms    68.2±1ms  
                 3      46.6±0.2ms   94.6±0.3ms 
                 10     62.3±0.5ms   129±0.4ms  
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         1.99±0.3ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        4.13±0.02ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         45.8±0.1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.25±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           36.0±2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.17±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            197±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          196±0.7ms
[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         76.6±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          435±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  21.5±0.5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.52±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        9.17±0.06ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          18.0±0.07ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          19.8±0.02ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            10.2±0.3μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             27.3±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              17.8±1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      16.2±0.2ms 
                 200      38.8±0.8ms 
                 500      85.6±0.7ms 
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    5.32±0.07μs 
              100000     1.26±0ms  
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    5.25±0.02μs 
              100000     1.40±0ms  
             ======== =============

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.17±0.02μs 
              100000     276±3μs   
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    3.74±0.04μs 
              100000     763±5μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      112±4ms  
                 200      257±30ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      7.53±0.1ms   15.5±0.2ms 
                 200      29.2±0.3ms   64.4±0.4ms 
                 500       74.7±1ms    159±0.9ms  
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         4.49±0.5ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           891±30μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           817±10μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         39.5±0.3μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        615±2ms  
                    True        366±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        2.56±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.30±0.01ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.27±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         53.0±0.3ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         864±8μs     1.84±0.01ms 
                  10      1.72±0.03ms   4.37±0.06ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             48.5±0.2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         48.8±0.2ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          153±0.3ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          211±0.5ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          272±0.4ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          267±0.9ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            273±3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            275±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window        67.0±0.09ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar          502±0.6ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           48.6±1ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      33.6±0.3ms   67.0±0.5ms 
                 3      46.8±0.4ms   93.8±0.2ms 
                 10     62.3±0.3ms    128±2ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.04±0.3ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        4.16±0.04ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         46.0±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.24±0.06ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           39.3±4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.17±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            197±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            198±3ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

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

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.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.87  bench_backtest.CacheL1Hit.time_cache_l1_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.13
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.14
·· Installing 9cf191f0 into virtualenv-py3.14
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.14
[ 0.00%] ·· Benchmarking virtualenv-py3.14
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[24.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[25.00%] · For pybroker commit 9cf191f0 (round 1/2):
[25.00%] ·· Building for virtualenv-py3.14
[25.00%] ·· Benchmarking virtualenv-py3.14
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--).......
[49.06%] ··· Running (bench_data.YFinanceMultiSymbol.time_yfinance_reshape--)...
[50.00%] · For pybroker commit 9cf191f0 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          113±0.8ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           437±10μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    34.8±3μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.93±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.03ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.0±0.06ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.06ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.5±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           27.3±0.8μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            17.2±0.4μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      21.3±0.04ms 
                 200       46.1±0.2ms 
                 500       99.1±0.8ms 
             =========== =============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.39±0.05μs 
              100000     680±6μs   
             ======== =============

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

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.25±0.08μs 
              100000     1.42±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.29±0.05μs 
              100000     108±5μs   
             ======== =============

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

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

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== =========
             --          n_indicators
             ----------- ---------
              n_symbols      5    
             =========== =========
                  50      137±3ms 
                 200      357±7ms 
             =========== =========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.9±0.06ms   27.3±0.2ms 
                 200       42.4±0.3ms   108±0.4ms  
                 500        108±3ms      271±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.72±0.4ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           988±20μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store          939±300μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           80.9±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        842±10ms 
                    True        454±3ms  
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.86±0.03ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.36±0.03ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.48±0.01ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         91.3±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.33±0.03ms 
                  10      2.20±0.03ms   5.26±0.08ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                259M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               85.3±2ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           81.5±2ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          241±0.3ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            405±5ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            419±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models           421±10ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            411±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          418±0.8ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window          100±0.2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            761±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         76.6±0.3ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1       56.3±1ms    110±0.4ms 
                 3      81.2±0.8ms    168±10ms 
                 10      103±2ms      220±10ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.27±0.01ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.54±0.02ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         77.2±0.1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.45±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.6±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.73±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            316±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            313±3ms
[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          111±0.5ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           462±40μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.3±0.2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.38±0.5μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.02ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.03ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.05ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.4±0.2μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.5±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            16.5±0.1μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      21.2±0.07ms 
                 200       45.2±0.4ms 
                 500        97.3±1ms  
             =========== =============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.36±0.05μs 
              100000     672±3μs   
             ======== =============

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

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

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.25±0.02μs 
              100000     106±5μs   
             ======== =============

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

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.58±0.07μs 
              100000     678±6μs   
             ======== =============

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.9±0.09ms   26.9±0.1ms 
                 200       41.7±0.3ms   106±0.3ms  
                 500        106±2ms      271±2ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.09±0.9ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            998±7μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store          940±100μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates          80.5±10μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        829±4ms 
                    True        453±3ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.86±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.37±0.03ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.51±0.01ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         91.6±0.6ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.01ms   2.33±0.03ms 
                  10      2.17±0.04ms   5.15±0.07ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               81.7±2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           81.5±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          240±0.7ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          403±0.7ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            416±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            410±2ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            409±3ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          417±0.6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window          101±0.7ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            757±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           77.5±1ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      55.6±2ms   110±2ms  
                 3      81.2±3ms   168±10ms 
                 10     106±2ms    218±8ms  
             ========= ========== ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.27±0.02ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.54±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize        77.3±0.06ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.45±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.3±0.3ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.74±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            315±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            314±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.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.52  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 425.798us) [I/O-bound, never blocks]
   1.14  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled  (baseline 5.45412ms)

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 9cf191f0 into virtualenv-py3.13
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.13
[ 0.00%] ·· Benchmarking virtualenv-py3.13
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.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--).........
[25.00%] ··· Running (bench_slippage.WalkforwardVolumeSlippage.time_walkforward_volume_slippage--).
[25.00%] · For pybroker commit 9cf191f0 (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.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 9cf191f0 (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          102±0.2ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          649±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.7±0.4μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.90±0.5μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.0±0.06ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.06ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.8±0.06ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.2±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             30.1±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.3±0.2μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      22.1±0.3ms 
                 200      48.6±0.5ms 
                 500      104±0.5ms  
             =========== ============

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

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

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

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

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

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.28±0.07μs 
              100000     679±5μs   
             ======== =============

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

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.6±0.08ms   26.1±0.2ms 
                 200       40.6±0.6ms   103±0.4ms  
                 500       104±0.6ms    259±0.7ms  
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.20±0.2ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.02±0.01ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.04±0.09ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           64.7±2μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ===========
              parallel_models             
             ----------------- -----------
                   False         866±3ms  
                    True        465±0.7ms 
             ================= ===========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.81±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.27±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.56±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         92.7±0.5ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.20±0.02ms   2.35±0.04ms 
                  10      2.23±0.01ms   5.28±0.05ms 
             =========== ============= =============

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

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward               78.5±1ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         77.9±0.4ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          239±0.6ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            391±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            420±4ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            414±1ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            410±1ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            418±3ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         94.5±0.3ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            759±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           75.5±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1       53.9±1ms    104±0.9ms 
                 3      77.0±0.9ms    163±10ms 
                 10     99.1±0.8ms    202±20ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.29±0.03ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.25±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize           72.8±1ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.47±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.0±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.73±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            303±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            305±2ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.13
[75.00%] ·· Benchmarking virtualenv-py3.13
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            103±1ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          426±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  34.3±0.7μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.92±0.09μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.09ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          20.9±0.04ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf           23.4±0.5ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.9±0.4μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.6±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              17.7±2μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.8±0.3ms 
                 200      48.6±0.4ms 
                 500      104±0.4ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    8.27±0.2μs 
              100000    704±10μs  
             ======== ============

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

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

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

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

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

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

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      10.5±0.07ms   25.7±0.2ms 
                 200       40.7±0.1ms   103±0.5ms  
                 500       102±0.7ms     257±2ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.45±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.03±0.02ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.01±0.08ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         62.7±0.6μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        866±3ms 
                    True        468±2ms 
             ================= =========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.78±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.35±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.49±0.01ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         90.5±0.9ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.19±0.01ms   2.33±0.03ms 
                  10      2.24±0.01ms   5.26±0.08ms 
             =========== ============= =============

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

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             79.2±0.7ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           79.2±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          237±0.3ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            393±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            415±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            411±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            410±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          419±0.8ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         93.8±0.4ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            764±2ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         76.6±0.3ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      53.1±0.3ms   104±0.5ms 
                 3      75.6±0.9ms    161±10ms 
                 10     99.7±0.4ms    204±20ms 
             ========= ============ ===========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.29±0.01ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.25±0.01ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         73.3±0.2ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.52±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.3±0.4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.76±0.03ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            307±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            309±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