>  기사  >  기술 주변기기  >  JMH를 사용하여 Java 프로그램 성능 향상

JMH를 사용하여 Java 프로그램 성능 향상

WBOY
WBOY앞으로
2023-05-18 15:05:17884검색

1 소개

Java 개발자는 종종 애플리케이션 성능을 개선해야 하는 과제에 직면합니다. JMH(Java Microbenchmark Harness)는 병목 현상을 식별하고 코드를 최적화하여 성능을 향상시키는 데 도움이 되는 강력한 도구입니다. 이 기사에서는 JMH를 소개하고 이를 사용하여 Java 애플리케이션의 성능을 향상시키기 위한 벤치마크를 생성 및 실행하는 방법을 보여줍니다.

2 JMH란?

JMH는 Java 코드의 성능을 측정하도록 설계된 오픈 소스 벤치마킹 프레임워크입니다. OpenJDK 팀에서 개발한 JMH는 메서드, 클래스, 알고리즘 등 애플리케이션의 다양한 측면 성능을 측정하는 간단하고 정확한 방법을 제공합니다.

3 JMH 설정

JMH 사용을 시작하려면 Maven 또는 Gradle 프로젝트에 다음 종속성을 추가해야 합니다.

Maven의 경우 pom.xml에 다음을 추가합니다.

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

Gradle의 경우 다음을 추가합니다. your build.gradle:

<code>implementation 'org.openjdk.jmh:jmh-core:1.33'annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.33'</code>

4 간단한 벤치마크 만들기

재귀를 사용하여 숫자 계승을 계산하는 방법의 성능을 측정하기 위해 간단한 벤치마크를 만듭니다.

<code>import org.openjdk.jmh.annotations.*;@State(Scope.Benchmark)public class FactorialBenchmark {@Param({"10", "20", "30"})public int number;@Benchmarkpublic long factorial() {return calculateFactorial(number);}private long calculateFactorial(int n) {if (n == 0) {return 1;}return n * calculateFactorial(n - 1);}}</code>

이 예에는

1이 있습니다. 클래스에는 JMH 벤치마크에 필요한 @State(Scope.Benchmark) 주석이 추가됩니다. @Param 주석이 달린 숫자 필드를 사용하여 벤치마크를 여러 번 실행하고 다양한 입력 값을 테스트합니다. @Benchmark 주석은 계승 방법에 사용되며, 이는 방법이 벤치마크로 테스트되어야 함을 나타냅니다.

5 벤치마크 실행

벤치마크를 실행하려면 기본 메소드로 새 클래스를 생성하고 JMH 러너를 사용하세요.

<code>import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.options.Options;public class BenchmarkRunner {public static void main(String[] args) throws Exception {Options options = new OptionsBuilder().include(FactorialBenchmark.class.getSimpleName()).forks(1).build();new Runner(options).run();}}</code>

이렇게 하면 벤치마크가 실행되고 읽기 가능한 형식으로 결과가 출력되므로 다양한 클래스의 성능을 비교할 수 있습니다. 입력값 .

6 분석 결과

JMH는 평균 시간, 표준 편차, 백분위수 값을 포함한 포괄적인 결과를 제공합니다. 이러한 측정항목을 사용하여 코드에서 최적화가 필요한 잠재적인 병목 현상과 영역을 식별하세요.

7 요약

Java Microbenchmark Harness(JMH)는 Java 애플리케이션의 성능을 향상시키는 데 도움이 되는 강력한 도구입니다. 벤치마크를 생성하고 실행하면 중요한 성능 코드를 식별하고 개선하여 애플리케이션이 효율적으로 실행되도록 할 수 있습니다. JMH의 유연성과 사용 용이성은 모든 Java 개발자에게 필수적인 도구 중 하나입니다. JMH를 개발 워크플로우에 통합하고 Java 애플리케이션의 잠재력을 최대한 활용하십시오.

위 내용은 JMH를 사용하여 Java 프로그램 성능 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제