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

Integrates the JMH benchmarking framework with Gradle

 

jmh-gradle-plugin源代码下载

  • Git URL:

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

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

用法

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

build.gradle

复制代码
  1. buildscript {
  2. repositories {
  3. jcenter()
  4. maven {
  5. url "https://plugins.gradle.org/m2/" }
  6. }
  7. dependencies {
  8. classpath "me.champeau.gradle:jmh-gradle-plugin:0.4.5" }
  9. }
  10. apply plugin: "me.champeau.gradle.jmh"

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

build.gradle

复制代码
  1. plugins {
  2. 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目录中找到:

复制代码
  1. src/jmh
  2. |- java : java sources for benchmarks
  3. |- resources : resources for benchmarks

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

build.gradle

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

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

build.gradle

复制代码
  1. dependencies {
  2. 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 任务是主要任务,取决于其他任务,因此执行这里任务通常足够:

复制代码
  1. 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. iis 8.0 HTTP 错误 404.3 server 2012

    最近在学习WCF,发现将网站WCF服务放到IIS上时不能正常运行,从网上搜了一下: 解决方法,以管理员身份进入命令行模式,运行: "%windir%\Microsoft.NET\Framew ...

  2. JS基础_标识符

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

  3. ubuntu18.04系统安装及php7.2,apache2,mysql8,git,svn,composer,vs code 到安装 php 扩展配置php.ini 实现 laravel5.8 运行

    简介:记录自己从系统安装到环境配置完毕运行laravel的记录    • 下载ubuntu18.04桌面版        ○ ubuntu18.04中国官网 https://cn.ubuntu.com ...

  4. Vue自定义组件以及组件通信的几种方式

    本帖子来源:小贤笔记 功能 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它 ...

  5. docker使用国内镜像加速

    在daemon.json文件里以下国内镜像 { "registry-mirrors": [ "https://registry.docker-cn.com", ...

  6. Zabbix Agent配置文件详解

    # This is a config file for the Zabbix agent daemon (Unix)# To get more information about Zabbix, vi ...

  7. 解决 android studio 出现:"AndroidStudio:Could not GET 'https://dl.google.com Received status code 400 from server: Bad Request"问题

    一.android studio 编译项目时出现"AndroidStudio:Could not GET 'https://dl.google.com Received status cod ...

  8. 检测字符串是否为UTF8编码

    /** * 检测字符串是否为UTF8编码 * @param string $str 被检测的字符串 * @return boolean */ function is_utf8($str){ $len ...

  9. TIOBE 2017 8月编程语言排行榜 后院“硝烟四起”

    处于排名榜最前面的几个编程语言的分数长期以来一直都在下降:Java和C在TIOBE榜单中的分数一直比较低.而且几乎所有其他排名前十的语言每年都在下降. 那么哪个什么语言抓住了这个机遇呢?这发生在排行榜 ...

  10. 从头开始 — CSS — 垂直居中

    事实上,每次面试前端必问的问题就是这个.及其常见的需求,看起来似乎非常简单,但是实现起来很费劲,尤其是涉及尺寸不固定的元素. 本篇文章将介绍比较流行的几种方法. 行内块 <body> &l ...