Maison > Article > Périphériques technologiques > Utilisez JMH pour améliorer les performances des programmes Java
Les développeurs Java sont souvent confrontés au défi d'améliorer les performances des applications. Java Microbenchmark Harness (JMH) est un outil puissant qui peut nous aider à identifier les goulots d'étranglement et à optimiser notre code pour améliorer les performances. Cet article présentera JMH et montrera comment l'utiliser pour créer et exécuter des tests afin d'améliorer les performances de vos applications Java.
JMH est un framework d'analyse comparative open source conçu pour mesurer les performances du code Java. Développé par l'équipe OpenJDK, JMH fournit un moyen simple et précis de mesurer les performances de divers aspects d'une application, tels que les méthodes, les classes et les algorithmes.
Pour commencer à utiliser JMH, vous devez ajouter les dépendances suivantes à votre projet Maven ou Gradle :
Pour Maven, ajoutez ceci à votre 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>
Pour Gradle, ajoutez ce qui suit à your build.gradle :
<code>implementation 'org.openjdk.jmh:jmh-core:1.33'annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.33'</code>
Nous créons un benchmark simple pour mesurer les performances d'une méthode qui utilise la récursivité pour calculer des factorielles numériques :
<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>
Dans cet exemple, nous Il y a :
1. La classe est annotée avec @State(Scope.Benchmark), qui est requis par le benchmark JMH. Nous utilisons le champ numérique annoté avec @Param pour exécuter le benchmark plusieurs fois et tester différentes valeurs d'entrée. L'annotation @Benchmark est utilisée pour les méthodes factorielles, ce qui indique que la méthode doit être testée comme référence.
Pour exécuter le benchmark, créez une nouvelle classe avec la méthode principale et utilisez le coureur 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>
Cela exécutera le benchmark et affichera les résultats dans un format lisible, vous permettant de comparer les performances de différents valeurs d'entrée.
JMH fournit des résultats complets, notamment le temps moyen, l'écart type et les valeurs centiles. Utilisez ces métriques pour identifier les goulots d'étranglement potentiels et les zones de votre code qui nécessitent une optimisation.
Java Microbenchmark Harness (JMH) est un outil puissant qui peut vous aider à améliorer les performances de vos applications Java. La création et l'exécution de tests de performance peuvent vous aider à identifier et à améliorer le code de performances critiques pour garantir le fonctionnement efficace de votre application. La flexibilité et la facilité d'utilisation de JMH en font l'un des outils essentiels pour tout développeur Java. Commencez à intégrer JMH dans votre flux de développement et exploitez tout le potentiel de vos applications Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!