Skip to content

Feature/webapp benchmark - #324

Draft
agentgt wants to merge 1 commit into
mainfrom
feature/webapp-benchmark
Draft

agentgt wants to merge 1 commit into
mainfrom
feature/webapp-benchmark

Conversation

@agentgt

@agentgt agentgt commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@agentgt
agentgt force-pushed the feature/webapp-benchmark branch 5 times, most recently from abaa348 to 5fc5a08 Compare August 26, 2026 00:49
@agentgt
agentgt marked this pull request as draft August 26, 2026 09:46
@agentgt
agentgt force-pushed the feature/webapp-benchmark branch 3 times, most recently from ad5c31f to 05f4506 Compare August 26, 2026 20:11
@agentgt
agentgt force-pushed the feature/webapp-benchmark branch 2 times, most recently from d9e145a to 0abd0a9 Compare September 4, 2026 12:52
… vs RainbowGum)

Squashed history of the webapp benchmark investigation (previously developed
on webapp-benchmark-0-10-0, pinned to the v0.10.0 release point) onto current
main. Adds a real Spring Boot 4 webapp per framework (rainbowgum-benchmark-
webapp-{logback,log4j2,rainbowgum}), a load-testing driver module, and three
run scripts covering the full scenario matrix:

- run-all.sh: default/GELF/virtual-threads/GELF+VT, always console+file
- run-k8s.sh: GELF to console only (no file) - the 12-factor/k8s deployment
  shape - both platform and virtual threads, all three frameworks
- run-tomcat-jul.sh: isolates an unexplained ~15-17% throughput regression
  from the rainbowgum-tomcat JUL bridge

See FINDINGS.md for the durable why (Logback vs Log4j2/RainbowGum tradeoffs
under virtual vs platform threads, the String.getBytes() Latin1 fast path,
LOCK_THREAD_LOCAL_BUFFER vs SYNCHRONIZED_THREAD_LOCAL_BUFFER under VT) and
RESULTS.md for the latest numbers - RainbowGum wins 5 of 6 scenarios, with
the k8s/console-only scenario its best result (~1.8-2x both competitors).

Also moves the original hand-rolled micro-benchmarks (tight-loop calls, no
HTTP layer) under benchmark/legacy, isolated there so their logback-classic/
log4j-slf4j2-impl dependencyManagement pins can never again leak into and
override a Spring Boot BOM the way they once did when both lived as siblings
directly under benchmark/pom.xml.

Full reactor build and tests pass clean.
@agentgt
agentgt force-pushed the feature/webapp-benchmark branch from 0abd0a9 to 4f935aa Compare September 11, 2026 20:10

This branch has not been deployed

No deployments
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.

1 participant