我想在gradle中使用JMH,一个OpenJDK微基准工具。然而,我得到了关于编译的NPE。另一方面,JMH在使用maven时可以工作。
我没有发布任何build.gradle
,因为它是基本的-应用java插件并添加对JHM工具的依赖(org.openjdk.jmh: jmh-core: 0.2
)。
我试过这里写的东西,但没有成功。
我还需要做什么?我想设置一个代理,但我还是没有弄清楚。
例外情况:
:compileJava
java.lang.NullPointerException
at org.openjdk.jmh.processor.internal.GenerateMicroBenchmarkProcessor.validMethodSignature(GenerateMicroBenchmarkProcessor.java:502)
不好意思,我试图对一个有参数的方法进行基准测试——当然JMH不知道要传递什么:)有一次,当我创建了一个没有参数的void方法时,一切都正常工作了。
我的构建:分级
:
defaultTasks 'build'
apply plugin: 'java'
apply plugin: 'shadow'
buildscript {
repositories {
mavenCentral()
maven {
name 'Shadow'
url 'http://dl.bintray.com/content/johnrengelman/gradle-plugins'
}
}
dependencies {
classpath 'org.gradle.plugins:shadow:0.7.4'
}
}
jar {
manifest {
attributes 'Main-Class': 'org.openjdk.jmh.Main'
}
}
repositories {
mavenCentral()
}
build.doLast {
tasks.shadow.execute()
}
shadow {
outputFile = new File('build/libs/microbenchmarks.jar')
}
ext {
lib = [
... other dependencies...
jmh: 'org.openjdk.jmh:jmh-core:0.2'
]
}
dependencies {
compile lib... other dependencies...
compile lib.jmh
}
sourceCompatibility = 1.7
构建测试和jar:
gw clean build
然后使用以下命令运行它们:
java -jar build/libs/microbenchmarks.jar ".*" -wi 2 -i 10 -f 2 -t 16
从最新版本的 JMH 开始,您还需要将依赖项添加到:
org.openjdk.jmh:jmh-generator-annprocess:0.5.4
而且可以用暗影0.8。
目前您可以只使用专用插件jmh-gradle-plugin
它需要最少的配置,并允许您运行JMH基准以及构建基准工件
刚刚完成我的“杰作”。没有超级罐子,没有插件,代码基础从主分离
我直接从IntelliJ运行它,要在一个盒子上运行,您可能需要返回uber jar:-)
在这样做之前,我已经花了相当多的时间试图让插件工作,但它对我的口味来说太笨拙了。
下面是逐步分解。
定义一个名为jmh
的新源集
,其类路径与主源集
的类路径挂钩
sourceSets {
jmh {
java.srcDirs = ['src/jmh/java']
scala.srcDirs = ['src/jmh/scala']
resources.srcDirs = ['src/jmh/resources']
compileClasspath += sourceSets.main.runtimeClasspath
}
}
为它定义依赖关系(至少是JMH和它的注释处理器)。
dependencies {
...
jmhImplementation 'org.openjdk.jmh:jmh-core:1.35'
jmhImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.35'
}
定义 JavaExec
类型的任务 jmh
task jmh(type: JavaExec, dependsOn: jmhClasses) {
main = 'org.openjdk.jmh.Main'
classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath
}
挂钩jmhClass
任务在类
之后运行,以确保基准测试与其余代码一起编译
classes.finalizedBy(jmhClasses)
问题内容: 指定带有透明度的渐变颜色时,是否可以使用CSS变量,例如 问题答案: 您可以使用变量,但不能从CSS中的单个十六进制值中采样各个红色,绿色和蓝色分量。 如果您只是想将alpha分量应用于现有的RGB三元组,则可以将整个三元组指定为用逗号分隔的十进制值列表,而不是十六进制值,并将其作为单个不透明标记直接替换为函数: 如果要使用来指定和控制各个R,G和B值,则需要为每个颜色分量指定一个变量
Redux framework正在使用reducers来更改应用程序状态以响应操作。 关键要求是缩减器不能修改现有的状态对象;它必须产生一个新的对象。 错误示例: 好例子: 这是一个很好的Immutable.js.用例
我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。
我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理
我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。
API level 28和Google建议使用registerNetworkCallback(NetworkRequest,PendingIntent)不推荐CONNECTIVITY\u操作。 我尝试使用ConnectionManager注册了registerNetworkCallback。NetworkCallback和它的工作,但我想使用PendingContent。 让我困惑的是公共空寄存器