java - 定义一个 gradle 任务来运行 caliper microbenchmark

标签 java gradle caliper microbenchmark

这可能更像是 Gradle 问题而不是 Caliper 问题,但我对 Gradle 还是比较陌生。我有兴趣在我的构建中提供一个可以使用 Caliper 运行一些基准测试的任务。我已经将 Caliper 添加到我的 testCompile 依赖项中,它可以正常工作并将所有内容都拉下来。我想知道如何提供实际运行基准测试的任务。

顺便说一句,我已经知道 caliper-ci。我确实有一个 Jenkins 构建,但它位于云服务上,尚不允许我配置 caliper-ci 的使用,此外,我希望能够在将更改提交到云之前在本地运行。

最佳答案

事实证明这是一个使用 JavaExec 的简单案例(无论如何我都是新手):

task runBenchmark(type: JavaExec, dependsOn: test) {
    def vmVer = System.getProperty('java.version')
    def osName = System.getProperty('os.name').replaceAll('\\s','')
    def osArch = System.getProperty('os.arch')
    def fnameBase = "ver${version}_${osName}-${osArch}_jvm${vmVer}"
    def benchMarksDir = "${project.buildDir}/benchmarks"
    ant.mkdir(dir: benchMarksDir)
    def outStream = new FileOutputStream("${benchMarksDir}/${fnameBase}-out.txt")
    standardOutput = outStream
    main = 'org.funcito.benchmarks.MyBenchmark'
    classpath = sourceSets.test.runtimeClasspath
    args = ['--saveResults', "${benchMarksDir}/${fnameBase}.json", '-Jmode=-server,-client']
}

关于java - 定义一个 gradle 任务来运行 caliper microbenchmark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099804/

相关文章:

android - Gradle说onStartCommand的return语句无法到达

android - 升级后Android Studio连接超时

java - Gradle 任务不采用 sourceSet 配置

java - 如何命名使用 Caliper 在线发送的运行?

java - 如何在没有 Maven 的情况下使用 Caliper 基准测试版快照?

java - 为玩家设置无敌框

java - 在我的程序中出现空指针异常。我究竟做错了什么?

java - 在java中处理n个if-else if的更好方法

具有 90% 静态成员的 Java 类。好的做法还是什么?

java - 带有卡尺的 Junit 设置