ubuntu

Ubuntu上Java应用程序如何进行性能测试

小樊
44
2025-11-26 16:06:37
栏目: 编程语言

Ubuntu上Java应用的性能测试实践指南

一 测试类型与工具选型

二 快速上手 JMH 微基准测试

<dependencies>
  <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>
    <scope>provided</scope>
  </dependency>
</dependencies>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>17</source><target>17</target>
        <annotationProcessorPaths>
          <path>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <version>1.37</version>
          </path>
        </annotationProcessorPaths>
      </configuration>
    </plugin>
  </plugins>
</build>
import org.openjdk.jmh.annotations.*;
import java.util.concurrent.TimeUnit;

@BenchmarkMode({Mode.Throughput, Mode.AverageTime})
@OutputTimeUnit(TimeUnit.MICROSECONDS)
@State(Scope.Thread)
public class StringConcatBenchmark {
    private String s1 = "Hello", s2 = "World", s3 = "Java";
    private int n = 100;

    @Benchmark public String testStringBuilder() {
        var sb = new StringBuilder();
        for (int i = 0; i < n; i++) { sb.append(s1).append(s2).append(s3); }
        return sb.toString();
    }
    @Benchmark public String testStringBuffer() {
        var sb = new StringBuffer();
        for (int i = 0; i < n; i++) { sb.append(s1).append(s2).append(s3); }
        return sb.toString();
    }
    @Benchmark public String testPlus() {
        String r = "";
        for (int i = 0; i < n; i++) { r += s1; r += s2; r += s3; }
        return r;
    }
}

三 负载与压力测试 JMeter 与 Gatling

四 运行时监控与瓶颈定位

五 系统层面与网络 I O 基准

0
看了该问题的人还看了