[
https://issues.apache.org/jira/browse/IGNITE-29147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18127248#comment-18127248
]
Ignite TC Bot commented on IGNITE-29147:
----------------------------------------
{panel:title=Branch: [pull/13691/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13691/head] Base: [master] : No new tests
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *--> Run :: All*
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9412056&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9412056
rerunBuildIds=none{color}
> Add allocation profiler to JMH benchmarks
> -----------------------------------------
>
> Key: IGNITE-29147
> URL: https://issues.apache.org/jira/browse/IGNITE-29147
> Project: Ignite
> Issue Type: Test
> Reporter: Maksim Davydov
> Assignee: Maksim Davydov
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The JMH benchmarks in {{modules/benchmarks}} start the client and server
> nodes in the benchmark JVM. JMH's {{-prof gc}} reports one
> bytes-per-operation number for that whole JVM, so it can't show on which node
> or in which thread pool a change adds allocation. It also undercounts the
> last iteration: the benchmarks stop their nodes in the trial teardown, which
> JMH runs before profilers read the last iteration, so the bytes of the
> stopped nodes are lost.
> This adds:
> * {{JmhAllocationProfiler}}, a JMH profiler ({{-prof}}) that reports bytes
> allocated per operation by the benchmark threads and by each thread pool of
> each node, client or server. It also reports communication messages and bytes
> sent, and discovery messages processed, per operation and node. Threads are
> grouped by the node and pool in their names.
> * {{JmhNodeStopHook}}. {{JmhCacheAbstractBenchmark}} calls it before stopping
> its nodes, so profilers see the last iteration.
> * {{JmhCacheAllocationBenchmark}}: cache put and get on atomic and
> transactional caches, through a client node with two server nodes, run with
> the profiler from its {{main()}}.
> * A README for the module: what the benchmarks measure, how to build and run
> them, how to measure allocation and how to write a benchmark.
> All changes are in {{modules/benchmarks}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)