温馨提示×

ubuntu如何测java性能

小樊
44
2026-09-10 03:35:09
栏目: 编程语言

在 Ubuntu 上测 Java 性能,常见做法分为基准测试(Benchmark)运行时性能分析(Profiling)系统级监控三类。下面按实用程度给你一套清晰方案。


一、写代码阶段的性能测试(Benchmark)

1. 使用 JMH(推荐)

JMH 是 OpenJDK 官方微基准测试框架,最准确。

安装(Maven 项目)

<dependency>
  <groupId>org.openjdk.jmh</groupId>
  <artifactId>jmh-core</artifactId>
  <version>1.37</version>
</dependency>
<dependency>
  <groupId>org.openjdk.jmh</groupId>
  <artifactId>jmh-generator-annprocess</artifactId>
  <version>1.37</version>
</dependency>

示例

@Benchmark
@OutputTimeUnit(TimeUnit.MICROSECONDS)
public void testMethod() {
    // 被测代码
}

运行:

mvn clean package
java -jar target/benchmarks.jar

二、程序运行时的性能分析(Profiling)

2. VisualVM(图形化,简单)

sudo apt install visualvm
visualvm
  • 查看 CPU、内存、线程
  • 适合本地调试

3. JProfiler / YourKit(商业,强大)

  • 适合复杂系统
  • Ubuntu 下用远程 agent 连接

4. 命令行工具(服务器常用)

jstack(线程)

jstack <pid>

jstat(GC & 内存)

jstat -gcutil <pid> 1000

jmap(堆快照)

jmap -dump:live,format=b,file=heap.hprof <pid>

async-profiler(强烈推荐)

git clone https://github.com/jvm-profiling-tools/async-profiler
./profiler.sh -d 30 -f flamegraph.html <pid>

生成火焰图,非常直观。


三、系统 & JVM 层监控

5. top / htop

top -p <pid>
htop

6. JVM 参数辅助

java -Xlog:gc*:file=gc.log -XX:+PrintGCDetails ...

7. Prometheus + Grafana(生产环境)

  • micrometer + actuator
  • 实时监控 QPS、延迟、GC

四、简单压测(接口层)

8. Apache Bench

ab -n 10000 -c 100 http://localhost:8080/api

9. wrk(更现代)

sudo apt install wrk
wrk -t12 -c400 -d30s http://localhost:8080/api

总结推荐组合

  • 本地开发:JMH + VisualVM
  • 服务器排查:async-profiler + jstat
  • 接口压测:wrk / ab
  • 生产监控:Prometheus + Grafana

如果你愿意,可以告诉我:

  • Web 服务 / 算法 / 后端任务
  • 想测 CPU / 内存 / 延迟 / 吞吐

我可以直接给你一套可复制的命令或代码模板。

0