8000 update jmh plugin settings (#410) · rsocket/rsocket-java@b9cc917 · GitHub
[go: up one dir, main page]

Skip to content

Commit b9cc917

Browse files
qweekrobertroeser
authored andcommitted
update jmh plugin settings (#410)
* update jmh plugin settings exclude test dependencies from jmh jar fix duplicate jmh generated classes (jmh-generated-classes, jmh-generated-sources) fix broken jmh metadata files (BenchmarkList, CompilerHints) fix jmh command line jar (inline dependencies with shadow plugin) fix jmh task for root scope (stop generate dummy jar) cleanup redundant out directory generated by IDEA remove slf4j and log4j dependencies (replace with slf4j-nop logger) add visual jmh report * fix build
1 parent 2f4a8a4 commit b9cc917

File tree

6 files changed

+56
-28
lines changed

6 files changed

+56
-28
lines changed

build.gradle

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,15 @@
1515
*/
1616

1717
plugins {
18-
id "com.gradle.build-scan" version "1.9"
19-
id 'com.jfrog.bintray' version '1.7.3'
18+
id 'com.gradle.build-scan' version '1.9' // declare before any other plugin
19+
2020
id 'com.github.sherter.google-java-format' version '0.6'
21+
id 'com.github.johnrengelman.shadow' version '2.0.1' apply false
22+
id 'me.champeau.gradle.jmh' version '0.4.4' apply false
23+
id 'io.morethan.jmhreport' version '0.6.2.1' apply false
24+
2125
id 'com.jfrog.artifactory' version '4.5.2'
22-
id 'me.champeau.gradle.jmh' version '0.4.4'
26+
id 'com.jfrog.bintray' version '1.7.3'
2327
}
2428

2529
repositories {

gradle/wrapper/gradle-wrapper.jar

4 Bytes
Binary file not shown.

rsocket-core/build.gradle

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,56 @@
1414
* limitations under the License.
1515
*/
1616

17+
apply plugin: 'com.github.johnrengelman.shadow'
1718
apply plugin: 'me.champeau.gradle.jmh'
19+
apply plugin: 'io.morethan.jmhreport'
20+
21+
// disable tasks to stop generating duplicate files
22+
jmhClasses.enabled = false
23+
jmhRunBytecodeGenerator.enabled = false
24+
jmhCompileGeneratedClasses.enabled = false
25+
26+
jmhJar {
27+
// add jmh classes to shadow jar
28+
from project.configurations.jmh
29+
from project.configurations.jmhRuntime
30+
31+
// exclude logging classes
32+
exclude 'org.slf4j:slf4j-log4j12'
33+
exclude 'log4j:log4j'
34+
}
1835

1936
jmh {
20-
jmhVersion = "1.19"
21-
profilers = ['gc']
22-
zip64 = true
37+
jmhVersion = '1.19'
38+
includeTests = false
2339
duplicateClassesStrategy = DuplicatesStrategy.WARN
40+
zip64 = true
41+
42+
jvmArgs = ['-XX:+UnlockCommercialFeatures', '-XX:+FlightRecorder']
43+
// NOTE: uncomment to add specific options
44+
// jvmArgsAppend = ['-XX:+UseG1GC', '-Xms4g', '-Xmx4g']
45+
profilers = ['gc']
46+
resultFormat = 'JSON'
47+
48+
// include = ['io.rsocket.RSocketPerf.fireAndForgetHello']
2449
}
2550

26-
dependencies {
27-
jmh "org.openjdk.jmh:jmh-core:1.19"
28-
jmh "org.openjdk.jmh:jmh-generator-annprocess:1.19"
51+
// run report generation after benchmark
52+
tasks.jmh.finalizedBy tasks.jmhReport
53+
54+
jmhReport {
55+
jmhResultPath = project.file('build/reports/jmh/results.json')
56+
jmhReportOutput = project.file('build/reports/jmh')
57+
}
58+
59+
// remove directory generated by IDEA during benchmark
60+
clean {
61+
project.delete('out')
2962
}
63+
64+
dependencies {
65+
jmh "org.openjdk.jmh:jmh-core:${jmh.jmhVersion}"
66+
jmh "org.openjdk.jmh:jmh-generator-annprocess:${jmh.jmhVersion}"
67+
68+
jmhRuntime "org.slf4j:slf4j-nop:$slf4jVersion"
69+
}

rsocket-core/src/jmh/java/io/rsocket/FragmentationPerf.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919

2020
@BenchmarkMode(Mode.Throughput)
2121
@Fork(
22-
value = 1,
23-
jvmArgsAppend = {"-XX:+UnlockCommercialFeatures", "-XX:+FlightRecorder"}
24-
) // , "-Dio.netty.leakDetection.level=advanced"})
22+
value = 1 // , jvmArgsAppend = {"-Dio.netty.leakDetection.level=advanced"}
23+
)
2524
@Warmup(iterations = 10)
2625
@Measurement(iterations = 10_000)
2726
@State(Scope.Thread)

rsocket-core/src/jmh/java/io/rsocket/RSocketPerf.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@
4141

4242
@BenchmarkMode(Mode.Throughput)
4343
@Fork(
44-
value = 1,
45-
jvmArgsAppend = {"-XX:+UnlockCommercialFeatures", "-XX:+FlightRecorder"}
44+
value = 1 // , jvmArgsAppend = {"-Dio.netty.leakDetection.level=advanced"}
4645
)
4746
@Warmup(iterations = 10)
4847
@Measurement(iterations = 10)

rsocket-examples/build.gradle

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,11 @@
1414
* limitations under the License.
1515
*/
1616

17-
apply plugin: 'me.champeau.gradle.jmh'
18-
19-
jmh {
20-
jmhVersion = "1.19"
21-
jvmArgs = ['-XX:+UseG1GC', '-Xmx4g', '-Xms4g', '-XX:+UnlockCommercialFeatures', '-XX:+FlightRecorder']
22-
profilers = ['gc']
23-
zip64 = true
24-
warmupBatchSize = 10
25-
iterations = 500
26-
duplicateClassesStrategy = DuplicatesStrategy.WARN
27-
}
28-
2917
dependencies {
3018
compile project(':rsocket-core')
3119
compile project(':rsocket-spectator')
3220
compile project(':rsocket-transport-netty')
3321
compile project(':rsocket-transport-local')
3422

35-
jmh "org.openjdk.jmh:jmh-generator-annprocess:1.19"
36-
3723
testCompile project(':rsocket-test')
3824
}

0 commit comments

Comments
 (0)
0