[ 
https://issues.apache.org/jira/browse/CASSANDRA-18871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17767083#comment-17767083
 ] 

Maxim Muzafarov commented on CASSANDRA-18871:
---------------------------------------------

+1 for point 1.

In addition, I would like to say:
- we must be able to run each benchmark from your IDE using the main method 
and/or JUnit runner, there is no way to do that now. In order to do this all 
the benchmarks must have an abstract ancestor that encapsulates all this 
machinery. For example, Netty has one:
https://github.com/netty/netty/blob/4.1/microbench/src/main/java/io/netty/microbench/util/AbstractMicrobenchmarkBase.java#L44

- we should enforce the names of benchmarks to be able to run them using with 
our in-tree scripts, there are a lot of variation names e.g. *Bench, 
*Benchmarks, *BenchTest etc. For me, this is a problem because it is difficult 
to filter all these names with scripts. For example, we are enforcing "Test" 
postfix for other tests, but not for benchmarks. As the result, all similar 
filter patterns look like this:
https://github.com/apache/cassandra/blob/trunk/build.xml#L1782C134-L1782C152
For me, we should align all benchmarks with "*BenchmarkTest" pattern.

> JMH benchmark improvements
> --------------------------
>
>                 Key: CASSANDRA-18871
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18871
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Build, Legacy/Tools
>            Reporter: Jacek Lewandowski
>            Assignee: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 4.0.x, 4.1.x, 5.0.x, 5.1
>
>
> 1. CASSANDRA-12586  introduced {{build-jmh}} task which builds uber jar for 
> JMH benchmarks which is then not used with {{ant microbench}} task. It is 
> used though by the {{test/bin/jmh}} script. 
> In fact, I have no idea why we should use uber jar if JMH can perfectly run 
> with a regular classpath. Maybe that had something to do with older JMH 
> version which was used that time. Building uber jars takes time and is 
> annoying. Since it seems to be redundant anyway, I'm going to remove it and 
> fix {{test/bin/jmh}} to use a regular classpath. 
> 2. I'll add support for async profiler in benchmarks. That is, the 
> {{microbench}} target automatically fetches the async profiler binaries and 
> adds the necessary args for JMH ({{-prof asyc...}} in particular) whenever 
> {{-Dtest.profiler=...}} is specified. If that property is fed with the empty 
> value, some default options will be applied (defined in the script, can be 
> negotiated). Otherwise, whatever is passed to the {{test.profiler}} property 
> will be added as profiler options.
> 3. If someone wants to see any additional improvements, please comment on the 
> ticket.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to