Repository navigation
- cronstable requires Python 3.11 or later, and
psutil5.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