我想将JMH用作在Web应用程序的功能/用户级别进行性能测试的框架。想象一下,我使用JMH来衡量从100个用户同时单击此站点上的“发布您的问题”到用户看到其发布的问题之间的时间。
这是完全错误的吗?这种方法的缺点是什么?
我不希望这些测试具有十亿分之一秒的精确度:半秒到一秒的精确度就可以了。
我创建了第一个实际测试,非常喜欢它的外观/工作方式-正是我所需要的。但是,通过使用微基准框架实现了我不打算做的事情,我是否会错过一些麻烦呢?
不寻找工具建议
最佳答案
现在使用这种方法大约6个月了,我想说我仍然没有发现任何缺点。我学到的一些东西:
即使在功能/用户级别的准确性较低,重要的是要了解各种配置参数的工作方式(特别是与JVM相关的参数,例如fork)。它们可能会影响您构建测试的方式,运行方式以及衡量的方式。
JMH确实是轻量级且高效的,因此与使用其他框架获得的结果进行比较可能无效(基本上,使用JMH运行时,我们看到了10-20%的性能提升);我必须建立一个新的基准。
JMH Jenkins plug-in帮助可视化结果