Ci-dessous est une liste alphabétique de tous les outils que j'ai trouvé. Les aspects mentionnés sont:
- est-il facilement paramétrable
- c'est une bibliothèque Java ou au moins facilement intégrable dans votre programme Java
- peut-il manipuler JVM micro-analyse comparative, par exemple l'utilisation d'une phase d'échauffement
- peut-il tracer les résultats visuellement
- peut-il stocker les valeurs mesurées de façon persistante
- peut-elle faire l'analyse des tendances pour l'avertir qu'un nouveau commit causé un ralentissement de la
- est-il fournir et utiliser des statistiques (au moins max, min, moyenne et écart-type).
Auto-pilote
paramétrable; bibliothèque Perl; pas de JVM micro-analyse comparative; tracé; la persistance; l'analyse de la tendance!?; de bonnes statistiques (exécuter un test donné, jusqu'à ce que les résultats de stabiliser; la mise en lumière des valeurs aberrantes).
L'analyse comparative du cadre
pas paramétrable; bibliothèque Java; JVM micro-analyse comparative; pas de traçage; pas de persistance; aucune analyse des tendances; statistiques.
Les statistiques extrêmement bien: en plus de la moyenne, max, min et l'écart-type, il calcule également les 95% intervalle de confiance (par l'intermédiaire de l'amorçage) et de la corrélation en série (par exemple, afin de les avertir oscillant temps d'exécution, ce qui peut se produire si votre programme se comporte de nondeterministically, par exemple, parce que vous utilisez HashSets). Il décide de la façon dont souvent le programme doit être réitéré pour obtenir des mesures précises et interprète pour le reporting et mises en garde (par exemple sur des valeurs aberrantes et de la corrélation en série).
Aussi ne la micro-analyse comparative très bien (voir Créer rapidement/référence fiable avec java? pour plus de détails).
Malheureusement, le cadre est livré dans un util-package livré avec beaucoup d'autres helper classes. L'indice de référence des classes dépendent de JSci (Une science de l'API pour Java) et Mersenne Twister (http://www.cs.gmu.edu/~sean/recherche/). Si l'auteur, Brent Boyer, trouve le temps, il va bouillir la bibliothèque et ajoutez une simple grapher, de sorte que l'utilisateur peut effectuer une inspection visuelle des mesures, par exemple pour les corrélations et les valeurs aberrantes.
Étrier
paramétrable; bibliothèque Java; JVM micro-analyse comparative; tracé; la persistance; aucune analyse des tendances; statistiques.
Relativement nouveau projet, conçu pour les applications Android. L'air jeune, mais prometteur. Dépend de Google Goyave :(
Communes de surveillance
pas paramétrable!?; Bibliothèque Java; pas de JVM micro benchmarking!?; traçage; la persistance à travers une servlet; aucune analyse des tendances!?; pas de statistiques!?.
Prend en charge AOP de l'instrumentation.
JAMon
pas paramétrable; bibliothèque Java; pas de JVM micro-analyse comparative; de traçage, de la persistance et de l'analyse de la tendance avec des outils supplémentaires (Jarep ou JMX); statistiques.
Un bon suivi, entrelacés avec log4j, les données peuvent aussi être accédés par programmation ou de mise en question et votre programme peut prendre des mesures sur les résultats.
Java Simon
pas paramétrable!?; Bibliothèque Java; pas de JVM micro-analyse comparative; traçage seulement avec Jarep; la persistance seulement avec JMX; aucune analyse des tendances; pas de statistiques!?.
Concurrent de Jamon, prend en charge une hiérarchie des moniteurs.
JETM
pas paramétrable; bibliothèque Java; JVM micro-analyse comparative; tracé; la persistance; aucune analyse des tendances; pas de statistiques.
Nice léger de surveillance d'outil, pas de dépendances :) N'offre pas suffisamment de statistiques (aucun écart-type), et d'étendre le plugIn en conséquence semble assez difficile (Agrégateurs et les Agrégats seulement ont fixé des getters pour min, max et moyenne).
jmeter
paramétrable!?; bibliothèque java; pas de JVM micro benchmarking!?; traçage; persistance; l'analyse de la tendance!?; les statistiques!?.
Bon suivi de la bibliothèque qui est adapté vers le test de charge des applications web.
Java Microbenchmark Harnais (jmh
)
paramétrable (personnalisé invocateurs via l'API Java); bibliothèque Java; JVM microbenchmarking; pas de parcelles; pas de persistance; aucune analyse des tendances; statistiques.
L'analyse comparative des harnais construit par Oracle HotSpot experts, donc très approprié pour microbenchmarking sur HotSpot, utilisé dans OpenJDK performance de travail. Extrême mesures sont prises pour assurer la fiabilité d'analyse comparative de l'environnement. En plus lisible de sortie, jmh fournit une API Java pour traiter les résultats, par exemple pour la 3e partie de traceurs et les fournisseurs de persistance.
junit-Repères
paramétrable; bibliothèque Java; JVM micro-analyse comparative; tracé; la persistance (utilisation de la CONSOLE, XML ou de la base de données H2); graphique de l'analyse des tendances; statistiques (max, min, moyenne, écart-type; mais pas facilement extensible pour plus de statistiques).
Il suffit d'ajouter un junit-4-règle à votre junit tests :)
junit-Repères est open source, sous licence Apache 2.
junitperf
Principalement pour faire de l'analyse de tendance pour les performances (avec le test JUnit décorateur TimedTest
) et l'évolutivité (avec le test JUnit décorateur LoadTest
).
paramétrable; bibliothèque Java; pas de JVM micro-analyse comparative; pas de traçage; pas de persistance; pas de statistiques.
perf4j
pas paramétrable; bibliothèque Java; pas de JVM micro-analyse comparative; tracé; la persistance via JMX; l'analyse des tendances par l'intermédiaire d'un log4j appender; statistiques.
S'appuie sur une structure de journalisation, pouvez utiliser l'AOP.
Projet De Broadway
Très concept général: les moniteurs d'observer les conditions prédéfinies et de spécifier comment réagir lorsqu'elles sont respectées.
speedy-mcbenchmark
L'accent principal est sur parameterizability: vérifiez si votre algorithme échelles, c'est à dire vérifier si il est O(n), O(n log(n)), O(n2)...
bibliothèque java; JVM micro-analyse comparative; pas de complot; la persistance; l'analyse des tendances; pas de statistiques.
Le Broyeur
paramétrable; Jython bibliothèque; pas de JVM micro-analyse comparative; tracé; la persistance; aucune analyse des tendances; pas de bonnes statistiques, mais facilement extensible.
Dépend de Jython, HTTPClient, JEditSyntax, ApacheXMLBeans, PicoContainer.
TPTP
paramétrable!?; Java outil de la plate-forme; pas de JVM micro benchmarking!?; traçage; la persistance; le graphique de l'analyse des tendances; pas de statistiques!?
Le Test de Performance et des Outils de la Plateforme est un énorme générique et extensible outil de plate-forme (basé sur Eclipse et quatre modèles EMF). Par conséquent, il est puissant, mais assez complexe, peut ralentir l'Éclipse vers le bas, et à l'extension de vos propres besoins (par exemple, avec les statistiques de sorte qu'ils ont une influence sur le nombre d'itérations) semble être très difficile.
Usemon
paramétrable!?; Bibliothèque Java; pas de JVM micro-analyse comparative; tracé; la persistance; l'analyse de la tendance!?; les statistiques!?.
L'outil est conçu pour la surveillance dans les grands groupes.