2012-05-29 11 views
10

FindBugs hat die Fähigkeit, "Performance" Bugs, d. H. Teile des Codes, die wahrscheinlich zu Leistungsproblemen führen. Gibt es andere Tools, die mögliche Ursachen für Leistungsprobleme in Java finden können?Java-Performance-Bug-Finder

Können irgendwelche Tools tatsächlich diese Fehler mit Leistungsdaten (z. B. Heap-Dumps, Traces) referenzieren, um zu überprüfen, ob es sich um echte Probleme handelt, oder um ihre Wichtigkeit einzuordnen?

+0

Ich empfehle, dass Sie "Brain - the wonder head filler" verwenden. Und natürlich ein CPU-Profiler. –

Antwort

4

Diese Art von Werkzeug heißt profiler.

Im Gegensatz zu FindBugs und ähnlichen sind Profiler dynamisch, dh sie erfassen Leistungsdaten, während das Programm ausgeführt wird. Sie können Probleme identifizieren, die mit CPU- und Speicherauslastung, Sperrkonflikten, Deadlocks usw. zusammenhängen.

Eine detaillierte Übersicht über die Funktionen eines solchen kommerziellen Tools finden Sie unter .

Für ein nichtkommerzielles Werkzeug, siehe VisualVM Features.

+0

Das klingt gut - aber es wäre besser, ein Werkzeug zu haben, das dies mit einer statischen FindBugs-ähnlichen Analyse korreliert, um die einfachen Fälle herauszugreifen. – daniel

+0

@daniel: Ich habe kein solches Tool gefunden. Außerdem ist es schwierig, Performance-Probleme durch statische Analysen ausfindig zu machen. – NPE

+0

FindBugs funktionieren statisch (nur auf der Quelle). Ein Profiler betrachtet ein laufendes Programm. Manche Dinge können offensichtlich erkannt werden, ohne das Programm ausführen zu müssen. –

3

Sie können auch den JProfiler verwenden. JProfiler ist ein preisgekrönter All-in-One Java Profiler. Die intuitive Benutzeroberfläche von JProfiler hilft Ihnen, Leistungsengpässe zu finden, Speicherlecks zu pinnen und Threading-Probleme zu lösen.

0

Ich schlage vor, einen Profiler wie diesen in Netbeans zu verwenden.

  • Erstellen Sie Komponententests unter Berücksichtigung der Leistungsannahme.
  • 1.) Testen Sie die Anzahl der erstellten Objekte
  • Fragen Sie sich: Habe ich das erwartet?
  • Geben Sie für „Prozessor-Esser“ -Methode der
  • 2.) Okay, oder sollte diese Methode schneller sein, denn es gibt nichts Besonderes in dem Verfahren (nur eine falsche Schleife oder so ähnlich) ist?

  • nur für den Ausreißer suchen !!! (Top 3 oder 5)

Sie werden viel über Ihre Anwendung lernen.