Skip to content

feat: add ColdBox performance analysis suite (BE vs stable 8.1)#666

Merged
lmajano merged 2 commits into
developmentfrom
claude/coldbox-perf-analysis-ractd4
Jun 20, 2026
Merged

feat: add ColdBox performance analysis suite (BE vs stable 8.1)#666
lmajano merged 2 commits into
developmentfrom
claude/coldbox-perf-analysis-ractd4

Conversation

@lmajano

@lmajano lmajano commented Jun 20, 2026

Copy link
Copy Markdown
Member

Adds tests/perf-harness/ — a complete performance benchmarking suite that
compares the bleeding-edge ColdBox development branch against stable 8.1
across four CFML engines: BoxLang, BoxLang-CFML, Adobe CF 2025, Lucee 7.

Structure:

  • app/ — shared ColdBox harness app (handlers, views, models,
    interceptors, perf-module HMVC module)
  • be-app/ — bootstrap that maps /coldbox to the repo root (BE branch)
  • stable-app/ — bootstrap that maps /coldbox to installed ColdBox 8.1
  • PerformanceSuite.cfc — CommandBox task runner orchestrating all tests
  • reports/ — output directory for generated HTML + Markdown reports

Test scenarios (5 per version):
health — routing only, no DI, no view (baseline)
simple-view — view rendering + layout pipeline
json-api — WireBox DI + JSON renderData
complex-view — multi-model injection + view data loops
module — HMVC module routing + module-scoped DI

Measurements:
cold start — server restart + cleared bytecode cache, first response
app bootstrap — ColdBox onApplicationStart re-init timing
warm latency — min/avg/P95/P99 over N iterations per scenario
throughput — sequential RPS over configurable duration

Reports:
perf-report-{ts}.md — Markdown with comparison tables + deltas
perf-report-{ts}.html — HTML with Chart.js bar charts + Bootstrap tables

New box.json scripts:
perf:run — full suite (all engines, both versions)
perf:run:quick — fast single-engine run without cold start
perf:be — BE version only
perf:stable — stable version only
perf:lucee — Lucee 7 engine only
perf:adobe — Adobe CF 2025 engine only

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01A9URDbRHAkreUvNUjFdmfG

claude added 2 commits June 20, 2026 12:03
Adds tests/perf-harness/ — a complete performance benchmarking suite that
compares the bleeding-edge ColdBox development branch against stable 8.1
across four CFML engines: BoxLang, BoxLang-CFML, Adobe CF 2025, Lucee 7.

Structure:
- app/        — shared ColdBox harness app (handlers, views, models,
                 interceptors, perf-module HMVC module)
- be-app/     — bootstrap that maps /coldbox to the repo root (BE branch)
- stable-app/ — bootstrap that maps /coldbox to installed ColdBox 8.1
- PerformanceSuite.cfc — CommandBox task runner orchestrating all tests
- reports/    — output directory for generated HTML + Markdown reports

Test scenarios (5 per version):
  health       — routing only, no DI, no view (baseline)
  simple-view  — view rendering + layout pipeline
  json-api     — WireBox DI + JSON renderData
  complex-view — multi-model injection + view data loops
  module       — HMVC module routing + module-scoped DI

Measurements:
  cold start   — server restart + cleared bytecode cache, first response
  app bootstrap — ColdBox onApplicationStart re-init timing
  warm latency — min/avg/P95/P99 over N iterations per scenario
  throughput   — sequential RPS over configurable duration

Reports:
  perf-report-{ts}.md   — Markdown with comparison tables + deltas
  perf-report-{ts}.html — HTML with Chart.js bar charts + Bootstrap tables

New box.json scripts:
  perf:run         — full suite (all engines, both versions)
  perf:run:quick   — fast single-engine run without cold start
  perf:be          — BE version only
  perf:stable      — stable version only
  perf:lucee       — Lucee 7 engine only
  perf:adobe       — Adobe CF 2025 engine only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A9URDbRHAkreUvNUjFdmfG
…tstrap

- Fix measureAppBootstrap reinit URL: use & not ? to append bsReinit=1 param
- Switch all 5 SCENARIOS from SES URLs to event-style ?event= URLs for reliability
- Fix health handler: use event.renderData() instead of return "ok" to bypass layout
- Add pathInfoProvider to Router.cfc for Tuckey forward URI extraction
- Fix Application.cfc pseudo-constructor: remove var keyword (BoxLang incompatible outside functions)
- Change COLDBOX_CONFIG_FILE to dot-notation path (cbperfapp.config.ColdBox) not filesystem path
- Add index.cfm entry points for both be-app and stable-app sub-directories
- Add Tuckey urlrewrite.xml to forward sub-path requests to correct index.cfm
- Add perf-specific server configs for all 4 engines with correct webroot (../../)
- Add .gitignore for stable-app/coldbox/ (box install artifact, not tracked)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A9URDbRHAkreUvNUjFdmfG
@lmajano lmajano merged commit ff7e83c into development Jun 20, 2026
27 checks passed
@lmajano lmajano deleted the claude/coldbox-perf-analysis-ractd4 branch June 20, 2026 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants