文章标签:Gradle  JMH  基准  INT  benchmark  framework  

Integrates the JMH benchmarking framework with Gradle

 

jmh-gradle-plugin源代码下载

  • Git URL:

    复制代码
    git://www.github.com/melix/jmh-gradle-plugin.git
  • Git Clone代码到本地:
    复制代码
    git clone http://www.github.com/melix/jmh-gradle-plugin
  • Subversion代码到本地:
    复制代码
    $ svn co --depth empty http://www.github.com/melix/jmh-gradle-plugin
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
 
JMH Gradle插件

这个插件集成了 JMH微基准测试框架( ) 和 Gradle。

用法

生成用于所有Gradle版本的脚本 Fragment:

build.gradle

复制代码
buildscript {
repositories {
jcenter()
maven {
url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "me.champeau.gradle:jmh-gradle-plugin:0.4.5" }
}
apply plugin: "me.champeau.gradle.jmh"

构建 Gradle 2.1中引入的新的,孵化的插件机制的脚本 Fragment:

build.gradle

复制代码
plugins {
id "me.champeau.gradle.jmh" version "0.4.5"}

要使用的插件版本?

Gradle插件版本

 

4.3

0.4.5

4.2

0.4.4

4.1

0.4.4

配置

插件使得集成到现有的项目中很容易,因为它有一个特定的配置。 尤其是,基准源文件应该在 src/jmh目录中找到:

复制代码
src/jmh
|- java : java sources for benchmarks
|- resources : resources for benchmarks

插件创建一个 jmh 配置,如果基准文件依赖 3rd 方库,则应该使用该配置。 例如如果要使用 commons-io,则可以添加如下所示的依赖项:

build.gradle

复制代码
dependencies {
jmh 'commons-io:commons-io:2.4'}

插件使用 JMH 1.19. 你可以通过更改 dependencies 块中的版本来升级版本:

build.gradle

复制代码
dependencies {
jmh 'org.openjdk.jmh:jmh-core:0.9' jmh 'org.openjdk.jmh:jmh-generator-annprocess:0.9'}

命令行任务

项目将添加以下几个任务:

  • jmhClasses: 编译原始基准代码

  • jmhRunBytecodeGenerator: 通过原始基准代码运行字节码生成器并生成实际基准

  • jmhCompileGeneratedClasses: 编译生成的基准

  • jmhJar: 构建包含JHM运行时和编译后的基准类的JMH jar

  • jmh: 执行基准测试

jmh 任务是主要任务,取决于其他任务,因此执行这里任务通常足够:

复制代码
gradle jmh

配置选项

默认情况下,将执行所有基准测试,并且结果将生成到 $buildDir/reports/jmh。 但是,由于 jmh配置块,你可以更改各种选项。 除了 include 之外的所有配置变量都是未设置的,这意味着它们回退到默认的JMH值:

JMH基准测试框架的更多相关文章

  1. JMH 性能测试框架

    参考 1 Java 并发编程笔记:JMH 性能测试框架  http://blog.dyngr.com/blog/2016/10/29/introduction-of-jmh/ 2  Code Samp ...

  2. 更准确的测试Java程序性能——JMH基准测试

    什么是JMH ​ JMH,即Java Microbenchmark Harness,Java平台下的一套微基准测试工具.如果我们需要测试API性能的话,就可以用上这个工具,所以它并不是取代单元测试的. ...

  3. 【Code Tools】Java微基准测试工具JMH之入门篇

    一.JMH是什么 JMH是一个Java工具,用于构建.运行和分析用Java和其他语言编写的以JVM为目标的 nano/micro/milli/macro 基准测试. 二.基本注意事项 1)运行JMH基 ...

  4. 【基准测试】JMH 简单入门

    JMH 简单入门 什么是 JMH JMH 是 Java Microbenchmark Harness 的缩写.中文意思大致是 "JAVA 微基准测试套件".首先先明白什么是&quo ...

  5. JMH使用说明

    JMH使用说明 一.概述 JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件.何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测 ...

  6. JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!

    Java 性能测试难题 现在的 JVM 已经越来越为智能,它可以在编译阶段.加载阶段.运行阶段对代码进行优化.比如你写了一段不怎么聪明的代码,到了 JVM 这里,它发现几处可以优化的地方,就顺手帮你优 ...

  7. Java基准性能测试--JMH使用介绍

    JMH是什么 JMH是Java Microbenchmark Harness的简称,一个针对Java做基准测试的工具,是由开发JVM的那群人开发的.想准确的对一段代码做基准性能测试并不容易,因为JVM ...

  8. Go语言单元测试与基准测试

    目录 单元测试 概述 go test参数解读 单元测试日志 基准测试 基础测试基本使用 基准测试原理 自定义测试时间 测试内存 控制计时器 Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码 ...

  9. Go 基准测试

        文章转载地址:https://www.flysnow.org/2017/05/21/go-in-action-go-benchmark-test.html 什么是基准测试?      基准测试 ...

随机推荐

  1. Ansible 系统概述与部署

    Ansible 系统概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet但是有一个不同和优点是我们不需要在节点中安装 ...

  2. macOS Sierra 如何安装任何来源的软件

    为了安全性考虑,macos是要手动勾选来自任何来源的选项才可以安装第三方应用软件,系统升级后,在新的系统中这一项是默认不显示的,如果想要出现和这一勾选选项,可以从终端中输入 sudo spctl -- ...

  3. MySql查询进阶

    1.1 as关键字 用于 给显示结果中字段 或者 表 起别名 select 别名.字段名 from 表名 as 别名 where 条件语句 # 对字段起别名 select id as '编号', na ...

  4. reduce一些方法对数组进行的处理

    reduce方法我之前都整理了知识点,不懂的可以看一下我之前的知识点,这次我们是整理了一些关于用reduce方法进行的一些对于数组的处理 1. reduce()求数组项之和 var arr = [3, ...

  5. abap 优化之ST05

    DATA: gt_mara TYPE TABLE OF mara. SELECT * INTO TABLE gt_mara FROM mara WHERE MATKL = 'L000001' %_hi ...

  6. springboot访问出错,mapperScan导包错误java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>() at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_172] at java.

    2019-08-06 12:42:03.153 ERROR 10080 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Se ...

  7. js带有遮罩的弹窗

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 如何删掉git版本库master分支的第一个commit

    这个操作会将库清空,一般来说在建库开始的时候操作. 适用场景: git init初始化版本库之后,提交第一个点之后发现这个点出问题了,但是此时内心如果有洁癖的话, 你会觉得不完美,很想把这个点干掉重来 ...

  9. 微信公众号开发者中心配置 Token验证失败 终极解决方案

    请您检查这几项: 1. 在您的URL(服务器地址)页面里,直接Get获取echostr参数打印到页面上. 在火狐浏览器里Firebug里面看到echostr前面多了几个乱码. 把您开发者设置的URL页 ...

  10. select,poll.epoll区别于联系

    select,poll,epoll都是IO多路复用中的模型.再介绍他们特点时,先来看看多路复用的 模型. 同其他IO的不同的是,IO多路复用一次可以等多个文件描述符.大大提高了等待数据准备好的时间的效 ...