1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/*
This project contains various native operating system integration utilities.
*/
apply plugin: 'java-library'
sourceCompatibility = javaVersion.java9Compatible ? 1.7 : 1.5
dependencies {
api project(':baseServices')
api libraries.nativePlatform
implementation libraries.commons_io
implementation libraries.slf4j_api
implementation libraries.jansi
implementation libraries.guava
}
useTestFixtures()
useTestFixtures(project: ":logging")
useClassycle()
task copyJmhReport(type: Copy) {
destinationDir = file("$buildDir/reports/jmh-html")
from 'src/jmh/html'
}
task convertCSV {
ext.inputFile = file("$buildDir/reports/jmh/results.csv")
ext.outputFile = file("$buildDir/reports/jmh-html/data.csv")
inputs.file(inputFile)
outputs.file(outputFile)
doLast {
def benchToScenarioName = [
'org.gradle.internal.nativeintegration.filesystem.FileMetadataAccessorBenchmark.stat_existing': 'Existing',
'org.gradle.internal.nativeintegration.filesystem.FileMetadataAccessorBenchmark.stat_directory': 'Directory',
'org.gradle.internal.nativeintegration.filesystem.FileMetadataAccessorBenchmark.stat_missing_file': 'Missing',
]
boolean first = true
def benchmarks = [:].withDefault { [] }
inputFile.eachLine { line ->
if (first) {
first = false
} else {
def (benchmark, mode, threads, samples, score, error, unit, accessor) = line.replace('"', '').split(",")
benchmarks[benchToScenarioName[benchmark]] << [accessor - 'FileMetadataAccessor', Double.valueOf(score) as int]
}
}
outputFile.parentFile.mkdirs()
Set tested = []
benchmarks.each { benchmark, values ->
values.each {
tested << it[0]
}
}
outputFile.withWriter { writer ->
writer << "Scenario,${tested.join(',')}\n"
benchmarks.each { benchmark, values ->
writer << "$benchmark"
tested.each { test ->
writer << ",${values.find { it[0] == test }[1]}"
}
writer << '\n'
}
}
println outputFile.absolutePath
}
}
task jmhReport {
//dependsOn 'jmh', copyJmhReport, convertCSV
}
|