JMH参数详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMH参数详解相关的知识,希望对你有一定的参考价值。
-bm <mode> 基准测试模式,可选模式: 吞吐量/thrpt, 平均时间/avgt, 采样时间/sample,单次执行时间/ss,全部/all (默认:吞吐)
-bs <int> 批处理数,每次迭代调用benchmark方法次数。有些基准测试模式可能忽略该设置,请单独检查。(默认:1)
-e <regexp+> 从运行中排除的基准测试。
-f <int> 单次基准测试fork次数。0用来禁止fork。警告:禁止fork可能不利于基准测试有和基础设施的可靠性,除非你想使用不同的预热模式。(默认10)
-foe <bool> 当基准测试遇到不可恢复的错误时候,是否允许JMH立刻失败?这有助于为基准套件做快速可用性测试,以及运行时候自动检查错误代码。(默认false)
-gc <bool> 是否允许JMH在迭代时候强制GC?强制GC可能有助于降低基准测试GC压力时的噪音,但是是以损害GC Ergonomics为代价。小心使用(默认fasle)
-h 显示帮助和退出。
-i <int> 测量迭代次数。测量迭代对基准测试分数进行计数。(默认:SingleShotTime 1次,其他模式20次)
-jvm <string> 使用给定的JVM运行。该选项只影响fork运行
-jvmArgs <string> 给定JVM运行参数。大多数选项继承主VM的选项,但是有些情况你只想传递参数给fork的虚拟机。要么单一空格分隔选项,或接受多个选项。此选项仅影响fork运行。
-jvmArgsAppend <string> 和jvmArgs相同,但是是给定了JVM参数时候后置新增这些选项。
-jvmArgsPrepend <string> 和jvmArgs相同,但是是给定了JVM参数时候前置新增这些选项。
-l 列出与过滤器匹配的基准测试,并退出。
-lp 列出与过滤器相匹配的基准测试,并且输出参数。并退出。
-lprof 列出性能分析器,并退出。
-lrf 列出机器可读的结果格式,并退出。 (text, csv, scsv, json, latex)
-o <filename> 将可读的输出输出到指定的文件。
-opi <int> 覆写每次调用的操作次数。详情看 @OperationsPerInvocation (默认:1)
-p <param={v,}*> 基准测试参数。该选项期望每个参数使用一次。参数名称和参数值应该用等号分隔,参数值应该用逗号分隔。
-prof <profiler> 使用性能分析器收集额外的基准测试数据。有些性能分析器在所有的JMV和操作系统不可用。使用-lprof查看可用的性能分析器。
-r <time> 每次测量迭代最少时间。基准通常运行的时间比迭代时间长。(默认:1s)
-rf <type> 机器可读结果的格式类型。这些结果被写入一个单独的文件(查看-rff),用-lrf查看可用的结果格式的列表。
-rff <filename> 写入机器可读的结果到指定文件。文件格式由-rf选项控制,请查看可用结果格式的列表。(默认:jmh-result.<result-format>)
-si <bool> 是否允许JMH同步迭代?确保测量部分仅在所有工作者线程运行时发生,这将明显减少多线程测试的噪音。(默认:true)
-t <int> 运行时工作者的线程数。“最大”意味着机器硬件所支持的线程数。(默认:1)
-tg <int+> 覆写非对称基准测试线程组分布。此选项期望在组内有一个逗号分隔的线程计数列表。更多信息,请看@Group/@GroupThreads
-to <time> 基准测试迭代超时时间。当超时后,JMH将试图终止运行的任务。非协作的JMH将忽略此超时(默认:10min)
-tu <TU> 在基准测试结果中覆写测试单位。可选的时间单位有:[m, s, ms, us, ns](默认:SECONDS)
-v <mode> Verbosity模式。可选模式有:[SILENT, NORMAL, EXTRA]. (默认: NORMAL)
-w <time> 每次预热迭代的最小时间,基准测试通常可能比迭代持续时间更长。(默认:1s)
-wbs <int> 预热批处理数:每次操作的基准方法调用次数。有些基准模式可能忽略此设置。
-wf <int> 为单个基准测试生成多少预热分支。预热分支中的所有迭代不计入基准分数。使用0禁用预热分叉。(默认:0)
-wi <int> 预热迭代次数。预热迭代不计数基准分数。(more:SingleShotTime是0次,其他所有模式是20次)
-wm <mode> 预热模式用于预热选定的基准。预热模式有:INDI(单独测试每个基准,然后测量它),BULK(首先预热所有的基准,然后做所有的测量),
BULK_INDI(首先预热所有基准,然后分别重新预热每个基准,然后进行测量)(默认:INDI)
-wmb <regexp+> 既包括由主过滤器选择后的测试,也包括运行中的预热基准测试。Harness不会测量这些基准测试,但是只能用于热身。
以上是关于JMH参数详解的主要内容,如果未能解决你的问题,请参考以下文章