我是JMH的新手,我试图了解在基准测试期间如何应用@Params。以下是我正在使用的代码:
public class BenchmarkMapper
{
@State (Scope.Benchmark)
public static class ExecutionPlan
{
public Source source;
public Mapper mapper;
@Param (
{ "100", "1000", "10000", "100000", "1000000" })
public int iterations;
@Setup (Level.Invocation)
public void setUp()
{
this.source = BenchmarkUtils.createSource();
this.mapper = new Mapper();
}
}
@Benchmark
public Map<Integer, Object> testMap(ExecutionPlan plan)
{
Map<Integer, Object> resultMap = new HashMap<>();
for (int index = plan.iterations; index > 0; index--)
{
resultMap.put(index, plan.mapper.map(plan.source));
}
return resultMap;
}
}
运行之后,我看到这些参数迭代被应用:
那么,当我使用这些@Params时,基准测试中会受到什么影响呢?使用@Params或@Measurements标注有什么区别?
先谢谢你
詹姆斯
如JMH示例中所述,@Params
注释使您能够通过基准测试尝试不同的配置。@测量
注释使您能够为基准测试设置基于测量的设置。例如,您可以设置每个分支中的迭代次数,或者您可以使用@测量
注释设置基准测试的时间单位。基准测试的计算次数计算为forkNumber*meturementIterations*numberOfParams
。我希望它能有所帮助!
我想创建一个
问题内容: 下面是代码片段。 有人可以向我解释@符号在Java中的含义吗? 问题答案: 这是一个注释。 注释是元数据的一种形式。它们提供的程序数据不属于程序本身。注释对其注释的代码的操作没有直接影响。 注释确实会影响工具和库对待程序的方式,进而会影响正在运行的程序的语义。可以从源文件,类文件中读取注释,也可以在运行时从中读取注释。
问题内容: 异步在Ajax中意味着什么?以及Ajax如何知道何时在不进行服务器轮询的情况下提取数据? 问题答案: 异步意味着脚本将向服务器发送请求,并继续执行它而无需等待答复。收到答复后,立即触发浏览器事件,该事件进而允许脚本执行关联的操作。 Ajax知道何时从服务器提取数据,因为您告诉它何时进行处理。
问题内容: 我对gulp比较陌生,我想知道gulp任务到底是做什么的?我已经搜集到它通常在a 和after之后运行,但是它还必须更多。我一直无法在网上或gulp的文档中找到任何东西,我真的很想了解我在使用什么。 编辑我发现了这个,但是在解释它方面做得很差 问题答案: 从Node文档中: https://nodejs.org/api/stream.html#stream_visible_pipe_d
问题内容: 我正在学习python,但不确定是否理解以下语句:“该函数(包括其名称)可以捕获 我们对问题的看法或抽象 。” 这是我不理解编程含义的粗体部分。引用来自http://www.openbookproject.net/thinkcs/python/english3e/functions.html 像计算机科学家一样思考,第3版。 谢谢 ! 问题答案: 抽象是所有计算机科学中的核心概念。没有
我正在学习python,我不确定是否理解以下语句:“函数(包括它的名字)可以捕捉我们对问题的心理组块或抽象。” 我不理解粗体部分在编程方面的含义。引用自http://www.openbookproject.net/thinkcs/python/english3e/functions.html 如何像计算机科学家一样思考,第3版。 谢谢你!