Skip to content

1.2.74

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 02:52
· 4 commits to main since this release
Immutable release. Only release title and notes can be modified.
  • cronstable requires Python 3.11 or later, and psutil 5.9.4 or later
    (its first release with Python 3.11 wheels). On Python 3.10, pip
    installs the last release that supports it.

Performance compared with 1.2.73

Regression check: passed. No compared metric exceeded its regression thresholds.

Both versions were benchmarked in alternating rounds on the same machine. Results use the lowest runtime and median memory usage across rounds. Negative changes mean less time or memory; positive changes mean more.

Benchmark comparisons (199 metrics)

Noise (±) estimates run-to-run variation across both versions. A result fails the regression check only if the increase exceeds its percentage limit, its minimum absolute change, and 2 times the noise estimate. When a result uses the lowest runtime and each version has three or more rounds, the median of the rounds must also increase by more than the percentage limit and the minimum absolute change. n/a means too few rounds to estimate noise; the other limits still apply.

The Regression limit column accounts for the minimum absolute change, expressed as a percentage of the baseline. Not enforced marks informational metrics.

Startup times include Python startup overhead. Their percentage changes exclude that overhead when it can be measured separately and leaves a positive runtime in both versions.

Benchmark 1.2.73 1.2.74 Change Noise (±) Regression limit
webui.log_count_5k 90.0 us 100.0 us +11.1% 4.5% 2222% (declared 25%)
webui.dirty_frame_rows_500 1.00 ms 916.6 us -8.6% 51.5% Not enforced
webui.select_move_500 66.00 ms 60.40 ms -8.5% 7.4% 25%
webui.boot_rows_500 419.60 ms 443.60 ms +5.7% 5.7% Not enforced
state.fanout_gather_100 25.75 ms 27.16 ms +5.5% 8.7% 38.83% (declared 25%)
schedule.pressure_20k_48h 17.57 ms 16.74 ms -4.7% 2.7% 56.92% (declared 15%)
startup.import_cronexpr 26.80 ms 26.62 ms -3.9% 0.6% 25%
dag.plan_claim_10k 14.47 ms 13.90 ms -3.9% 5.8% 69.12% (declared 15%)
webui.tail_term_2k 57.60 ms 59.70 ms +3.6% 5.3% 25%
webui.filter_keys_500 69.40 ms 66.90 ms -3.6% 2.4% 25%
schedule.duplicates_20k 18.90 ms 18.23 ms -3.5% 7.6% 52.91% (declared 15%)
loop.stall_mcp_jobs_500 8.70 ms 8.99 ms +3.4% 2.4% Not enforced
mem.gc_pause_100k 168.44 ms 163.50 ms -2.9% 2.9% 25%
webui.render_term_5k 104.05 ms 107.10 ms +2.9% 1.5% 25%
dag.gc_excess_60 153.16 ms 149.32 ms -2.5% 3.7% 25%
state.artifact_put_distinct_2k 163.75 ms 167.77 ms +2.5% 2.6% 25%
state.boot_rehydrate_populated 44.32 ms 45.39 ms +2.4% 2.0% 22.56% (declared 15%)
cronexpr.test_match_200k 25.50 ms 24.89 ms -2.4% 2.2% 39.21% (declared 15%)
dag.run_chain_100 349.94 ms 358.28 ms +2.4% 2.2% 25%
job.launch_fail_retry_2k 180.28 ms 184.50 ms +2.3% 2.3% 15%
webui.palette_keys_500 52.60 ms 51.50 ms -2.1% 3.0% 25%
webapi.activity_build_500 182.42 ms 186.14 ms +2.0% 3.1% 15%
webui.tick_500 85.40 ms 83.80 ms -1.9% 9.0% 25%
webui.sort_500 55.80 ms 54.80 ms -1.8% 4.3% 25%
dag.run_wide_500 138.66 ms 141.09 ms +1.8% 1.0% 25%
state.depends_on_past_gate 3.53 ms 3.47 ms -1.8% 1.0% 56.67% (declared 25%)
webui.render_rows_500 17.47 ms 17.18 ms -1.7% 1.6% 25%
pools.admit_cycle_1k 148.80 ms 151.25 ms +1.6% 2.4% 25%
webui.swim_400x49 82.30 ms 81.00 ms -1.6% 1.3% 25%
state.append_pruned_1k 296.20 ms 300.88 ms +1.6% 1.0% 25%
webui.radar_walk_500x150 70.10 ms 71.20 ms +1.6% 4.6% 25%
mcp.list_jobs_page_500 156.64 ms 158.92 ms +1.5% 1.2% 15%
state.kv_roundtrip_200 157.65 ms 159.90 ms +1.4% 3.3% 15%
loop.stall_launch_herd_8k 80.79 ms 81.92 ms +1.4% 1.7% Not enforced
tui.fleet_paint_15x400 151.16 ms 149.07 ms -1.4% 0.7% 15%
startup.version 55.47 ms 55.13 ms -1.4% 0.4% 25%
redact.secrets_5k 21.46 ms 21.17 ms -1.3% 0.3% 46.6% (declared 15%)
redact.clean_20k 21.27 ms 21.00 ms -1.2% 1.2% 47.02% (declared 15%)
loop.stall_completions_500 10.39 ms 10.26 ms -1.2% 0.4% 48.12% (declared 25%)
job.report_noop_100k 52.13 ms 51.51 ms -1.2% 1.4% 15%
jobapi.sem_denied_64x10 83.80 ms 84.80 ms +1.2% 1.5% 25%
tui.view_sort_5k 117.85 ms 116.45 ms -1.2% 2.7% 15%
loop.stall_jobs_500 20.87 ms 21.11 ms +1.2% 1.8% Not enforced
cronexpr.next_complex 15.97 ms 15.79 ms -1.2% 0.8% 62.6% (declared 15%)
dag.list_runs_warm 14.31 ms 14.14 ms -1.2% 0.7% 25%
state.append_1k 570.43 ms 563.84 ms -1.2% 2.3% 15%
tui.wallboard_paint_5k 184.99 ms 182.90 ms -1.1% 5.0% 15%
tui.palette_type_5k 177.31 ms 175.37 ms -1.1% 2.1% 15%
state.derive_max_cold 22.34 ms 22.58 ms +1.1% 1.2% 44.77% (declared 15%)
startup.import_daemon 197.63 ms 199.71 ms +1.1% 0.4% 25%
mcp.query_metrics_500 134.29 ms 132.87 ms -1.1% 2.2% 25%
dag.fanin_barrier_1k 194.81 ms 196.83 ms +1.0% 2.1% 25%
pools.enqueue_burst_200 252.89 ms 250.36 ms -1.0% 2.7% 25%
webui.rows_layout_200 62.10 ms 62.70 ms +1.0% 1.8% 25%
tui.mark_idle_300 274.61 ms 277.22 ms +1.0% 1.3% 15%
startup.python_baseline 17.94 ms 18.10 ms +0.9% 0.3% Not enforced
webui.timeline_500 54.00 ms 54.50 ms +0.9% 1.1% 25%
tui.dag_graph_paint_2k 230.15 ms 232.26 ms +0.9% 0.6% 15%
schedule.reseed_100k 205.57 ms 203.76 ms -0.9% 1.4% 15%
prometheus.first_scrape_after_reload_500 191.67 ms 190.00 ms -0.9% 5.3% 15%
resources.monitor_stop_100 291.24 ms 293.76 ms +0.9% 1.4% 25%
state.artifact_list_churn_x500 67.15 ms 66.58 ms -0.9% 1.0% 25%
startup.validate_config_100 196.13 ms 194.79 ms -0.8% 0.6% 25%
webapi.resources_poll_20x240 144.74 ms 145.97 ms +0.8% 2.3% 15%
webapi.dags_poll_1k 137.54 ms 138.68 ms +0.8% 1.1% 15%
schedule.next_fires_2k 25.55 ms 25.76 ms +0.8% 1.0% 39.14% (declared 15%)
dag.build_layered_10k 51.06 ms 50.64 ms -0.8% 1.0% 19.58% (declared 15%)
fingerprint.job_set_id_rich_2k 255.65 ms 257.74 ms +0.8% 1.9% 15%
config.parse_dir_cold_200 268.12 ms 270.25 ms +0.8% 0.4% 25%
tui.log_search_20k 15.62 ms 15.49 ms -0.8% 1.0% 64.04% (declared 15%)
webapi.jobs_payload_500 51.89 ms 52.27 ms +0.7% 1.8% 19.27% (declared 15%)
webapi.sse_burst_20k 46.55 ms 46.20 ms -0.7% 1.7% 15%
cronexpr.next_dst_2k 40.42 ms 40.72 ms +0.7% 1.9% 24.74% (declared 15%)
startup.daemon_first_pass_2k 1.617 s 1.629 s +0.7% 0.9% 25%
job.launch_reap_2k 160.80 ms 161.97 ms +0.7% 1.6% 15%
cluster.job_owner_2k 57.14 ms 56.73 ms -0.7% 1.0% 17.5% (declared 15%)
config.parse_yaml_3k 1.804 s 1.791 s -0.7% 1.4% 15%
webui.wallboard_poll_500 56.40 ms 56.00 ms -0.7% 2.1% 25%
dag.advance_quiescent_1k 72.96 ms 72.45 ms -0.7% 1.5% 25%
state.list_records_warm 126.94 ms 126.05 ms -0.7% 0.8% 15%
schedule.suggest_slot_5k_x20 77.37 ms 77.88 ms +0.7% 0.4% 15%
cronexpr.occurrences_1k 13.88 ms 13.98 ms +0.7% 1.5% 72.02% (declared 15%)
redact.adversarial_10k 38.27 ms 38.03 ms -0.6% 0.8% 26.13% (declared 15%)
state.list_records_2k 24.99 ms 25.14 ms +0.6% 2.2% 40.02% (declared 15%)
config.reload_warm_dir_1k 78.23 ms 77.77 ms -0.6% 1.2% 25%
cluster.parse_summaries_6k 92.20 ms 92.73 ms +0.6% 4.1% 15%
config.interp_2k 66.78 ms 66.39 ms -0.6% 0.8% 15%
state.list_documents_600 58.82 ms 58.48 ms -0.6% 0.9% 20.4% (declared 15%)
webapi.summary_status_500 173.28 ms 174.27 ms +0.6% 0.3% 15%
state.lease_renew_200 125.46 ms 126.17 ms +0.6% 3.6% 39.85% (declared 25%)
dag.full_sweep_50x200 115.53 ms 116.17 ms +0.6% 8.4% 25%
state.artifact_get_oldest_2k 127.90 ms 128.58 ms +0.5% 0.7% 25%
cronexpr.next_simple 38.43 ms 38.23 ms -0.5% 1.7% 26.02% (declared 15%)
state.mutate_document_1k 209.25 ms 208.15 ms -0.5% 2.7% 25%
config.parse_crontab_1k 13.58 ms 13.65 ms +0.5% 0.3% 73.62% (declared 15%)
tui.poll_absorb_5k 84.86 ms 85.29 ms +0.5% 3.1% 15%
cluster.peer_serve_400 160.67 ms 161.44 ms +0.5% 0.6% 15%
config.reload_gc_100k 2.903 s 2.889 s -0.5% 1.5% 25%
resources.usage_from_dict_500 98.94 ms 99.41 ms +0.5% 1.0% 15%
tui.tail_ingest_30k 174.82 ms 175.63 ms +0.5% 0.9% 15%
push.seal_500 90.96 ms 91.37 ms +0.5% 1.0% 15%
mcp.list_jobs_500 147.21 ms 146.55 ms -0.5% 0.8% 15%
dag.adopt_scan_500 103.04 ms 102.59 ms -0.4% 1.2% 25%
ical.render_500x7d 50.80 ms 50.58 ms -0.4% 0.7% 19.68% (declared 15%)
schedule.lint_2500_zoned 77.06 ms 77.39 ms +0.4% 0.4% 15%
schedule.due_pass_100k 14.67 ms 14.60 ms -0.4% 1.2% 68.18% (declared 25%)
state.gc_sweep_2k_streams 42.24 ms 42.07 ms -0.4% 2.8% 35.51% (declared 25%)
dag.build_chain_10k 29.97 ms 29.85 ms -0.4% 2.8% 33.37% (declared 15%)
config.reload_warm_include_50 93.07 ms 93.43 ms +0.4% 1.5% 25%
jobapi.read_path_10k 125.39 ms 124.90 ms -0.4% 0.6% 15%
json.roundtrip_3k 572.78 ms 574.98 ms +0.4% 0.4% 15%
json.roundtrip_orjson_3k 209.02 ms 209.80 ms +0.4% 1.0% 15%
tui.week_rows_500 138.37 ms 137.85 ms -0.4% 0.5% 15%
job.stream_passthrough_240k 150.10 ms 149.54 ms -0.4% 0.5% 15%
state.artifact_get_newest 21.40 ms 21.33 ms -0.4% 0.7% 25%
startup.job_set_id_100 202.17 ms 201.68 ms -0.4% 0.5% 25%
loop.sla_pass_5k_x10 149.01 ms 149.54 ms +0.4% 5.4% 15%
mcp.fleet_15x400 171.34 ms 170.73 ms -0.4% 2.0% 15%
config.parse_yaml_rich_20 270.86 ms 271.73 ms +0.3% 0.6% 15%
dag.advance_quiescent_chain 71.08 ms 70.86 ms -0.3% 1.4% 25%
cluster.derive_cold_50 162.22 ms 162.73 ms +0.3% 0.7% 15%
cronexpr.parse_complex 24.28 ms 24.21 ms -0.3% 1.0% 41.18% (declared 15%)
schedule.reseed_local_20k 95.15 ms 95.45 ms +0.3% 2.4% 15%
webui.week_walk_500x20 64.90 ms 64.70 ms -0.3% 1.1% 25%
cluster.fleet_view_15x400 92.65 ms 92.93 ms +0.3% 1.6% 25%
tui.drawer_paint_5k 105.78 ms 106.08 ms +0.3% 0.7% 15%
webapi.auth_scope_20k 87.65 ms 87.40 ms -0.3% 0.7% 15%
dag.finish_fanin_20x1k 82.95 ms 82.72 ms -0.3% 1.0% 25%
startup.import_config 111.86 ms 112.29 ms +0.3% 0.4% 25%
startup.mcp_bridge 109.35 ms 109.28 ms -0.3% 1.9% 25%
startup.jobcli_state_get 111.99 ms 111.91 ms -0.3% 1.1% 25%
loop.idle_wake_rate 22.42 ms 22.48 ms +0.3% 1.2% 25%
webui.ledger_analyze_500x600 78.80 ms 78.60 ms -0.3% 1.2% 25%
startup.import_tui 105.93 ms 106.31 ms +0.2% 0.7% 25%
config.parse_yaml_300 181.59 ms 182.01 ms +0.2% 1.4% 15%
dag.mapped_drain_256 28.79 ms 28.72 ms -0.2% 2.1% 34.74% (declared 25%)
loop.stall_metrics_2000 29.21 ms 29.15 ms -0.2% 3.1% Not enforced
tui.table_paint_5k 192.57 ms 192.97 ms +0.2% 0.4% 15%
webapi.trends_build_5k 164.19 ms 164.52 ms +0.2% 5.4% 15%
dag.list_dags_warm_x300 68.55 ms 68.41 ms -0.2% 0.8% 25%
webui.logo_recovery 102.80 ms 103.00 ms +0.2% 0.3% 25%
webapi.sse_tail_pump_4x20k 117.93 ms 118.15 ms +0.2% 1.7% 15%
statsd.emit_2k 13.14 ms 13.12 ms -0.2% 0.4% 76.11% (declared 25%)
webui.rows_diff_500 59.50 ms 59.40 ms -0.2% 2.1% 25%
json.loads_wide_int_2k 229.76 ms 230.14 ms +0.2% 0.9% 15%
webapi.gzip_body_500 64.03 ms 63.93 ms -0.2% 1.0% 15%
cluster.poll_round_15x400 169.76 ms 169.50 ms -0.2% 1.7% 15%
webapi.pools_poll_4x130 110.76 ms 110.92 ms +0.1% 2.2% 25%
state.inventory_2k_streams 107.37 ms 107.52 ms +0.1% 0.9% Not enforced
pair.qr_encode_14 252.75 ms 253.06 ms +0.1% 0.8% 15%
config.jobconfig_3k 72.96 ms 72.87 ms -0.1% 1.8% 15%
dag.advance_waiting_mapped_1k 122.42 ms 122.56 ms +0.1% 3.0% 25%
mem.rss_daemon_import 39.34 MB 39.29 MB -0.1% 0.1% 25%
config.reload_warm_50 43.55 ms 43.50 ms -0.1% 2.2% 25%
fingerprint.job_set_id_10k 301.78 ms 301.49 ms -0.1% 2.4% 15%
mem.rss_daemon_web_100 53.98 MB 53.93 MB -0.1% 0.5% 25%
state.derive_max_warm 240.57 ms 240.77 ms +0.1% 0.2% 15%
push.seal_xwing_500 136.78 ms 136.68 ms -0.1% 0.3% 15%
mcp.tools_list_bytes 33.53 KB 33.51 KB -0.1% 0.0% 15%
mem.jobconfig_2k 1.66 MB 1.66 MB +0.1% 0.1% 30.2% (declared 15%)
job.stream_capture_120k 37.27 ms 37.25 ms -0.1% 0.7% 26.83% (declared 15%)
mcp.handle_200 158.57 ms 158.65 ms +0.1% 0.5% 15%
dag.recover_plan_from_1k 105.09 ms 105.13 ms +0.0% 2.0% 15%
push.fanout_8x100 154.97 ms 154.91 ms -0.0% 0.8% 15%
cronexpr.parse_simple 44.04 ms 44.05 ms +0.0% 1.0% 22.7% (declared 15%)
prometheus.counter_snapshot_2k 128.66 ms 128.69 ms +0.0% 0.8% 15%
mem.launch_reap_steady_20x55 0.38 MB 0.38 MB +0.0% 0.0% 15%
tui.log_restyle_5k 31.15 ms 31.14 ms -0.0% 1.6% 32.1% (declared 15%)
prometheus.render_500 17.96 ms 17.96 ms -0.0% 3.9% 55.67% (declared 15%)
schedule.cold_build_100k 501.81 ms 501.87 ms +0.0% 1.1% 15%
mem.jobconfig_envfile_2k 16.41 MB 16.41 MB +0.0% 0.0% 15%
mem.rss_daemon_10k 144.43 MB 144.44 MB +0.0% 0.0% 25%
webapi.dag_run_poll_1k 89.17 ms 89.17 ms +0.0% 1.0% 25%
mem.parse_peak_rich_20 4.21 MB 4.21 MB +0.0% 0.0% 15%
mem.gc_manifest_scan_128x2k 14.32 MB 14.32 MB -0.0% 0.0% 15%
mem.tui_state_5k 2.24 MB 2.24 MB -0.0% 0.0% 15%
prometheus.exposition_bytes_500 821.17 KB 821.17 KB -0.0% 0.0% 15%
webui.render_fleet_15x400 23.88 ms 23.88 ms -0.0% 1.9% 25%
dag.run_doc_bytes_1k 228.53 KB 228.53 KB +0.0% 0.0% 5%
dag.mapped_doc_bytes_1k 725.81 KB 725.81 KB +0.0% 0.0% 5%
tui.frame_bytes_5k 60.22 KB 60.22 KB +0.0% 0.0% 15%
webui.append_line_5k 14.0 us 14.0 us +0.0% 6.0% 25%
webui.dag_tasks_2k 56.00 ms 56.00 ms +0.0% 3.0% 25%
webapi.jobs_bytes_500 181.42 KB 181.42 KB +0.0% 0.0% 15%
webapi.jobs_gzip_500 5.19 KB 5.19 KB +0.0% 0.0% 15%
webapi.activity_bytes_500 2569.83 KB 2569.83 KB +0.0% 0.0% 15%
webapi.activity_capped_bytes_500 411.18 KB 411.18 KB +0.0% 0.0% 15%
webapi.fleet_bytes_15x400 963.62 KB 963.62 KB +0.0% 0.0% 15%
webapi.index_bytes 657.66 KB 657.66 KB +0.0% 0.0% 15%
webapi.index_gzip_bytes 188.32 KB 188.32 KB +0.0% 0.0% 15%
cluster.peer_bytes_512 83.55 KB 83.55 KB +0.0% 0.0% 15%
prometheus.counter_snapshot_bytes_2k 620.59 KB 620.59 KB +0.0% 0.0% 15%
mcp.list_jobs_bytes_500 155.54 KB 155.54 KB +0.0% 0.0% 15%
mcp.fleet_bytes_15x400 2052.76 KB 2052.76 KB +0.0% 0.0% 15%
mem.crontab_10k 2.80 MB 2.80 MB +0.0% 0.0% 17.85% (declared 15%)
mem.retired_output_1k 0.12 MB 0.12 MB +0.0% 0.0% 15%
mem.run_history_series_5 9.58 MB 9.58 MB +0.0% 0.0% 15%
mem.cluster_view_50x400 11.64 MB 11.64 MB +0.0% 0.0% 15%
mem.rss_version 14.59 MB 14.59 MB +0.0% 0.0% 25%

What's Changed

  • Bump the nix group across 1 directory with 2 updates by @dependabot[bot] in #53

Full Changelog: 1.2.73...1.2.74