Java JMH测试与JMeter测试的区别及说明

 更新时间:2025年08月30日 08:58:36   作者:学亮编程手记  
JMH专注微观基准测试,测量Java代码性能;JMeter用于宏观性能测试,评估系统负载与压力,两者互补,JMH优化关键代码,JMeter验证整体性能

Java JMH 测试与 JMeter 测试的区别

JMH (Java Microbenchmark Harness) 和 JMeter 是两种完全不同的测试工具,

主要区别如下:

1. 测试类型

  • JMH:专注于 微观基准测试 (Microbenchmarking),用于测量小段 Java 代码的性能(如方法、算法)
  • JMeter:专注于 宏观性能测试,主要用于 Web 应用、API、数据库等的负载测试和压力测试

2. 测试粒度

  • JMH:纳秒/微秒级精度,测量非常细粒度的性能
  • JMeter:秒级精度,测量系统整体性能

3. 主要用途

JMH

  • 比较不同算法的性能
  • 优化热点代码
  • JVM 特性分析(如 JIT 编译效果)

JMeter

  • 测量系统吞吐量
  • 确定系统在高负载下的行为
  • 功能测试和回归测试

4. 执行方式

  • JMH:在 JVM 内部运行,需要编写 Java 代码
  • JMeter:从外部模拟用户请求,通常通过 GUI 配置

5. 报告指标

  • JMH:操作耗时(纳秒/微秒)、吞吐量(ops/秒)、JVM 相关指标
  • JMeter:响应时间、吞吐量(请求/秒)、错误率、系统资源使用情况

6. 典型使用场景

  • 使用 JMH:当你需要知道 HashMap.get()TreeMap.get() 哪个更快
  • 使用 JMeter:当你需要知道你的网站能否承受 1000 个并发用户

两者可以互补使用 - JMH 优化关键代码,JMeter 验证整体系统性能。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java如何将可运行jar打包成exe可执行文件

    java如何将可运行jar打包成exe可执行文件

    Java程序完成以后,对于Windows操作系统习惯总是想双击某个exe文件就可以直接运行程序,这篇文章主要给大家介绍了关于java如何将可运行jar打包成exe可执行文件的相关资料,需要的朋友可以参考下
    2023-11-11
  • JDK13.0.1安装与环境变量的配置教程图文详解(Win10平台为例)

    JDK13.0.1安装与环境变量的配置教程图文详解(Win10平台为例)

    这篇文章主要介绍了JDK13.0.1安装与环境变量的配置教程图文详解(Win10平台为例),本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • java api返回值的标准化详解

    java api返回值的标准化详解

    这篇文章主要介绍了java api返回值的标准化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 关于springboot中对sqlSessionFactoryBean的自定义

    关于springboot中对sqlSessionFactoryBean的自定义

    这篇文章主要介绍了springboot中对sqlSessionFactoryBean的自定义方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot集成ShardingSphere-JDBC实现分库分表

    SpringBoot集成ShardingSphere-JDBC实现分库分表

    本文主要介绍了SpringBoot集成ShardingSphere-JDBC实现分库分表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07
  • 解析Java中的Field类和Method类

    解析Java中的Field类和Method类

    这篇文章主要介绍了Java中的Field类和Method类,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-12-12
  • springboot打包不同环境配置以及shell脚本部署的方法

    springboot打包不同环境配置以及shell脚本部署的方法

    这篇文章主要给大家介绍了关于springboot打包不同环境配置以及shell脚本部署的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用springboot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Java 四种访问修饰符+面向对象详解

    Java 四种访问修饰符+面向对象详解

    本文介绍了Java中的四种访问修饰符(private, default, protected, public)及其在面向对象编程(OOP)中的作用,包括封装、继承和多态,通过对比OOP中的术语和访问修饰符的使用,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • java实现web实时消息推送的七种方案

    java实现web实时消息推送的七种方案

    这篇文章主要为大家介绍了java实现web实时消息推送的七种方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Java的列表、集合、数组的添加一个元素各自用什么方法详解

    Java的列表、集合、数组的添加一个元素各自用什么方法详解

    这篇文章主要介绍了Java的列表、集合、数组的添加一个元素各自用什么方法的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用java具有一定的参考借鉴价值,需要的朋友可以参考下
    2025-07-07

最新评论