Consolidate and calibrate the test/perf benchmark scenarios#5781
Open
BalusC wants to merge 1 commit into
Open
Conversation
Merge TableBean and RepeatBean into a single DataBean shared by the table, repeat and composite scenarios; composites iterate a smaller compositeRows list since they are heavier per row. Drop the size-adjective scenario variants: the former `-heavy` variants become the canonical scenario (suffix dropped, smaller origins removed, since they only differed in row count), and `composite-heavy` is renamed `composite-unrolled` to name what it is — a `c:forEach`-unrolled static composite tree. Add `view-unrolled` and `view-unrolled-ajax`: a flat `c:forEach`-unrolled static tree with no inputs, so a postback restores it delta-free (exercising the restoreViewRootOnly skip) and rebuilds + re-renders the whole tree at scale, full and partial-response — the descendant mark-id cache / buildView path that had no other coverage. Calibrate every scenario's size (row counts and `c:forEach` ends) so each costs ~5 ms per postback on tomcat-myfaces, making per-scenario times comparable instead of the prior 0.3–35 ms spread and roughly halving the suite wall time. The ajax-inputs scenarios are restore-dominated and bounded by the container's default maxParameterCount, so they stay lighter by necessity. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates and calibrates the
test/perfbenchmark scenarios (harness for #5753).TableBean+RepeatBean→DataBean— one shared bean for the table/repeat/composite row data; composites iterate a smallercompositeRowslist since they're heavier per row.-heavyvariants become the canonical scenario (suffix dropped, smaller origins removed, since they only differed in row count).composite-heavy→composite-unrolled(ac:forEach-unrolled static composite tree, the RESTORE_PHASE is slow on Mojarra 2.3 #4811 pattern).view-unrolled+view-unrolled-ajax— a flatc:forEachstatic tree, no inputs, so a postback restores delta-free (exercises therestoreViewRootOnlyskip) and rebuilds + re-renders the whole view at scale (full and partial-response) — thebuildView/ descendant mark-id cache path that had no other coverage.maxParameterCount, so they stay lighter by necessity.Calibrated run (Mojarra 4.1.10-SNAPSHOT vs MyFaces 4.1.4-SNAPSHOT, Tomcat): Mojarra wins every existing scenario (−10…−34%); the only remaining deficit is the new
*-unrolledtrio (+25…+47%,view-unrolled+47%) — the at-scalebuildView/mark-id path these scenarios were added to surface.🤖 Generated with Claude Code