[
https://issues.apache.org/jira/browse/TAP5-2839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18104974#comment-18104974
]
ASF subversion and git services commented on TAP5-2839:
-------------------------------------------------------
Commit 0d207439bb4b6514c3b2fccb2829d052aa258e35 in tapestry-5's branch
refs/heads/TAP5-2839 from Ben Weidig
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=0d207439b ]
TAP5-2839: add JMH (convention, version catalog)
> Add JMH benchmarking
> --------------------
>
> Key: TAP5-2839
> URL: https://issues.apache.org/jira/browse/TAP5-2839
> Project: Tapestry 5
> Issue Type: Improvement
> Affects Versions: 5.10.0
> Reporter: Ben Weidig
> Assignee: Ben Weidig
> Priority: Minor
>
> Performance changes in Tapestry aren't currently measurable, at least not in
> a deterministic fashion.
> There is no way to state what a change to the IoC registry, a coercion, or
> the DOM rendering actually costs based on hard numbers.
> h4. Proposal
> Introduce [JMH|https://github.com/openjdk/jmh] as a Gradle convention plugin
> ({{tapestry.jmh-convention}}), so any module can carry microbenchmarks in
> {{src/jmh/java}}.
> * JMH {{1.37}}, declared in the version catalog
> * Benchmark source set compiles against the module's own classes and its
> {{provided}} configuration, mirroring the test source set
> * Two tasks per module: {{jmh}} (run) and {{jmhList}} (list without running)
> * Run options as {{-P}} properties: {{jmh.include}}, {{jmh.exclude}},
> {{jmh.quick}}, {{jmh.forks}}, {{jmh.profilers}}, {{jmh.resultFile}}, and
> others
> * Results are written as JSON, so a before/after pair can be diffed, and
> easier visualized
> h4. CI
> Benchmarks are deliberately *not* wired into {{check}} or {{build}}.
> A JMH run can take minutes or even longer, and has therefore no place in CI.
> The root task {{jmhCompileAll}} compiles every benchmark source set instead,
> so refactorings cannot break them silently.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)