2009-11-06 15 views
5

Ich bin auf der Suche nach ein paar interessanten dynamischen Analysatoren, die ich für einen Universitätsauftrag verwenden und darüber berichten kann. Die Werkzeuge sollten:Was sind einige interessante, kostenlose, Open-Source Dynamic Analysis Tools für Java?

  • Open Source (so kann ich von ihnen lernen)
  • Free (beide wie in Rede und Bier, weil ich in der Lage sein, die Ergebnisse zu teilen, und ich bin fest -fisted, respectively)
  • Vorgesehen für Java (Quelle oder Bytecode)

Dies umfasst, ist aber auf, Leistung Profilometer nicht darauf beschränkt. Sie können jede Art von Analyse durchführen, solange sie dynamisch ist, z. B. Code-Coverage, Multi-Threading-Korrektheit.

Die erzeugten Ergebnisse sollten in irgendeiner Weise nützlich sein, aber sie müssen nicht industrielle Stärke sein.

ähnliche Frage:

Also, was sind einige interessanten, kostenlose Open-Source-dynamische Analyse-Tools für Java?

Antwort

2

Cobertura und Emma Code Coverage-Analyse durchführen.

In Bezug auf Multi-Thread-Korrektheit wird FindBugs einiges davon tun. Es führt jedoch statische Analyse durch. d.h. nicht während das Programm läuft.

0

Ich habe Yourkit gefunden, um ein ziemlich erstaunlicher Profiler für Java zu sein. Es macht wunderbare Hotspot-Analyse und Speicher-Profiling. Ich habe es verwendet, um viele Speicherverluste sowie viele Optimierungen zu finden.

Es hat auch eine schöne Eclipse-Integration Plugin (wenn das Ihre Tasche)

+0

Yourkit ist nicht frei oder Open Source. Obwohl es eine Evaluierungszeit hat. – Grundlefleck

+0

Ist Yokit Open Source? –

+0

Ahh, habe diesen Teil der Frage nicht bemerkt. Es ist ein großartiges Werkzeug, aber es lohnt sich, darüber nachzudenken. – Benj

2

Check out Glassbox, eine Fehlerbehebung Agent für Java-Anwendungen, die automatisch häufige Probleme diagnostiziert. Glassbox wird als War-Datei auf Ihrem Anwendungsserver bereitgestellt und verwendet AspectJ Ladezeitweben, um Anwendungskomponenten und andere Artefakte zu überwachen, um Probleme wie übermäßige oder fehlgeschlagene Remoteaufrufe, langsame Abfragen, zu viele Datenbankabfragen, Threadkonflikte, sogar welche Anfrage zu identifizieren Parameter verursachten Fehler.

Glassbox überwacht Anwendungen nicht-invasiv, indem Aspekte zur Verfolgung von Komponenteninteraktionen verwendet werden. Wir überwachen auch eingebaute JMX-Daten, insbesondere auf einer Java 5 VM, die wir Thread-Daten (standardmäßig alle 100 ms) abtasten. Wenn eine Anfrage bearbeitet wird, fassen wir bemerkenswerte Ereignisse zusammen, z. B. wo Zeit verbraucht wurde und welche Parameter dazu beigetragen haben, dass die Dinge langsam wurden oder fehlschlugen. Wir erkennen auch Vorgänge auf höherer Ebene (z. B. Struts-Aktionen oder Spring-Controller), mit denen wir Berichte erstellen. Unser AJAX-Webclient stellt dann auf den überwachten Maschinen Statuszusammenfassungen zur Verfügung und wir erstellen auf Anfrage eine detailliertere Analyse. Mit Glassbox können Server-Cluster überwacht werden: Die Web-App verwendet JMX Remote oder direktes RMI für den Zugriff auf Daten von Remote-Servern. Wir bieten außerdem JMX-Fernzugriff auf die Statistik der unteren Ebene.

+0

+1 Für ein interessantes Werkzeug. Wissen Sie, ob es auf Webanwendungen beschränkt ist? – Grundlefleck

+0

Glassbox ist ein WAR, daher muss es auf einem Anwendungsserver bereitgestellt werden, es kann jedoch Ressourcen wie JMS und EJB überwachen. Nein, es ist nicht auf Webanwendungen beschränkt. –

+0

Entschuldigen Sie, was wahrscheinlich eine dumme Frage ist, kann sie irgendein Java-Programm analysieren, wie eine Swing-App? Es rühmt sich viel Funktionalität, aber ich kann nicht sagen, dass die Seite wählt, grundlegende Sachen nicht zu erwähnen, oder wenn es nicht fähig ist. – Grundlefleck

0

Eine, die ich zuvor verwendet habe, ist ein Leistungsprofiler namens JRat.

Läuft als Java-Agent und meldet Statistiken wie Zeit, die innerhalb einer bestimmten Methode verbracht wurde.