jmh相关内容

口水表演

我有一个关于Drool在不同机器上的性能的问题。 我做了一个非常简单的JMH基准测试: package ge.magticom.rules.benchmark; import ge.magticom.rules.benchmark.Subscriber rule "bali.free.smsparty" activation-group "main" salience 449 ..
发布时间:2022-04-14 14:08:14 其他开发

Arrays.stream().map().sum() 的性能不稳定

我偶然发现了一个对原始数组执行非常简单的 map/reduce 操作的极其不稳定的性能配置文件的实例.这是我的 jmh 基准代码: @OutputTimeUnit(TimeUnit.NANOSECONDS)@BenchmarkMode(Mode.AverageTime)@OperationsPerInvocation(Measure.ARRAY_SIZE)@Warmup(迭代次数 = 300,时 ..
发布时间:2021-12-28 09:02:47 Java开发

如何从 JUnit 测试内部运行 JMH?

如何使用 JUnit 测试在现有项目中运行 JMH 基准测试?官方文档推荐单独制作一个项目,使用Maven shade插件,在main方法中启动JMH.这是必要的吗?为什么推荐? 解决方案 我一直在使用 JUnit 的现有 Maven 项目中运行 JMH,没有明显的不良影响.我无法回答为什么作者建议做不同的事情.我没有观察到结果的差异.JMH 启动了一个单独的 JVM 来运行基准测试来隔离 ..
发布时间:2021-12-24 22:37:51 Java开发

如何与gradle一起使用JMH?

我想使用 JMH (一种OpenJDK微基准工具),并带有 gradle 强>.但是,我正在编译时得到NPE.另一方面,从maven使用时,JMH可以工作. 我没有发布任何 build.gradle ,因为它是基本的-应用Java插件并添加对JHM工具的依赖项( org.openjdk.jmh:jmh-core:0.2 ). 我尝试了此处写的内容, 没有成功. 我还需要做什么? ..
发布时间:2021-05-13 18:46:05 其他开发

在JMH中分配率是什么意思

我正在尝试测量运行基准测试时消耗的内存.我在互联网上发现可以使用 GC 分析器进行测量.我尝试过,但是我不明白答案,也看不到消耗的内存量.谁能解释结果?谢谢. MyBenchmark.testMethod_width_2_attribute_text ss 60 32.345±1.759 ms/opMyBenchmark.testMethod_width_2_attribute_text:·g ..
发布时间:2021-05-09 20:37:07 Java开发

通过JMH在sun.misc.Unsafe.compareAndSwap测量中的奇怪行为

我决定使用不同的锁定策略并使用JMH来测量增量.我正在使用JMH来检查吞吐量和平均时间,以及用于检查正确性的简单自定义测试.有六种策略: 原子数 ReadWrite锁定计数 与volatile同步 没有挥发的同步块 sun.misc.Unsafe.compareAndSwap sun.misc.Unsafe.getAndAdd 不同步计数 基准代码: @State(Sc ..
发布时间:2021-04-21 19:31:41 Java开发

如何使用JMH依次运行基准测试中的方法?

在我的情况下,基准测试中的方法应在一个线程中顺序运行,并按顺序修改状态. 例如,基准类中有一个名为 num 的 List .我想要的是:首先,运行 add()将数字附加到列表中.然后,运行 remove()将其从列表中删除. 调用顺序必须为 add()->remove().如果 remove()在 add()之前运行,或者它们同时运行,则它们将引发异常,因为列表中没 ..
发布时间:2021-04-15 19:23:25 Java开发

如何使用JMH测量平均冷启动时间?

在JMH(Java Microbenchmark Harness)中,我们可以使用 @BenchmarkMode(Mode.AverageTime)@Warmup(迭代次数= 10)@Measurement(迭代次数= 10) 评估JVM预热后平均执行时间. 我们也可以使用 @BenchmarkMode(Mode.SingleShotTime)@Measurement(迭代次数= ..
发布时间:2021-04-15 19:23:17 Java开发

OpenJDK JMH有时会在结果中打印(* interrupt *).这到底是什么意思?

我使用OpenJDK JMH 0.9.3,有时我在下面得到这样的结果日志文件.(*中断*)在这里是什么意思? 使用以下命令分叉1次:[/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/...]#运行进度:53.85%完成,预计到达时间00:01:26#叉子:1之1#Warmup迭代1:19950765,000 us/op#预热迭代2:(* int ..
发布时间:2021-04-15 19:22:42 其他开发

如何对引发异常的方法进行基准测试?

应该如何对使用jmh引发异常的方法进行基准测试? 我在jmh 1.19下尝试了以下方法: @Benchmark public void throwException() throws IllegalArgumentException { throw new IllegalArgumentException("Hard-coded exception"); } 但出现此错误: ..
发布时间:2020-06-27 18:59:51 其他开发

为什么.toString()似乎为StringBuilder修复了OutOfMemoryError异常?

我正在学习如何使用JMH对事物进行微基准测试.我从一个看似简单的东西开始:StringBuilder vs String +=的字符串连接. 根据我的理解,我应该制作一个包含StringBuilder实例的State对象,因为我不想基准化其构造函数(也不想每次迭代都为空). String +=测试也是如此-我希望将State中的String对象与新字符串连接起来. 这是我的代码: ..
发布时间:2020-06-27 18:59:47 Java开发

从jar运行特定的JMH基准测试

我有几个带有@Benchmark注释的重型基准测试类.在用基准测试罐后,我可以使用以下命令运行所有 java -Xmx4G -jar benchmarks.jar -f 1 -wi 3 -i 10 如果我不想全部运行基准,如何指定运行基准? 解决方案 如有疑问,请寻求命令行帮助.实际上,使用-h运行JAR会产生: Usage: java -jar ... [regexp*] ..
发布时间:2020-06-27 18:59:43 Java开发

这些在JMH中使用的奇怪布尔值是什么?

我写了 这真的让我感到震惊,因为只有很少的注释会导致如此多的类通过继承绑定在一起.我很好奇这些类中的内容,因此我使用了称为procyon的反编译工具(顺便说一句,我从KotlinConf 2019的一次演讲中学到了该工具)来反编译这些生成的类,其中大多数与控件相关,例如测量时间(明确指定的内容不能内联)并收集指标.但是在那些班级里有很多奇怪的布尔值: 在其他生成的类文件中也有很多布尔值 ..
发布时间:2020-06-27 18:59:41 Java开发

在JMH中对具有不同值的循环进行微基准测试

众所周知,在JMH基准测试中使用循环不是一个好主意,因为它将由JIT编译器进行优化,因此应避免使用.有没有一种方法可以在不使用循环的情况下为我的JMH基准测试方法提供不同值的int输入(输入列表). 解决方案 看看@Param({"1", "2"}) public int arg; @Benchmark public int doBenchmark() { return doSomethi ..
发布时间:2020-06-27 18:59:39 Java开发