Seez408: Package-Struktur in einem Verzeichnisbaum abbilden...

Hi Leute,

ich versuche mich gerade am Profiling einer größeren Java-Applikation. Dabei verwende ich den Standard-Profiler hprof. In den Log-Outputs von hprof werden z.B. mit der option cpu=old alle aufgerufenen Methoden incl. Aufrufer erfasst. Die Outputs können wahlweise ascii oder binary sein. Ich möchte nun alle selbstimplementierten Methoden aus dem Logfile selektieren. Dies geht bequem über die Package-Struktur z.B. java.lang.System.arraycopy() ist für mich nicht interessant, da es sich um eine Systemmethode handelt. So, habe ich nun alle für mich relevanten Methoden extrahiert (und jetzt wirds interessant!!) möchte ich aus diesen n Strings eine Baumstruktur aufbauen. Alle haben im Prinzip den gleichen Aufbau: package1.package2.package3...Class.methode() Wie kann ich daraus dynamisch einen Verzeichnis-Baum a la WinExplorer generieren, wobei die Packages Knoten und die Methoden Blätter ergeben sollen? Für Ideen wäre ich sehr dankbar... :D

  1. Hi,

    Hi Leute,

    ..... Wie kann ich daraus dynamisch einen Verzeichnis-Baum a la WinExplorer generieren, wobei die Packages Knoten und die Methoden Blätter ergeben sollen? Für Ideen wäre ich sehr dankbar... :D

    In javax.swing.tree findest Du alles, was Du brauchst.

    Viele Grüße,
    Martin Jung

  2. Hi,

    Hi Leute,

    ich versuche mich gerade am Profiling einer größeren Java-Applikation. Dabei verwende ich den Standard-Profiler hprof. In den Log-Outputs von hprof werden z.B. mit der option cpu=old alle aufgerufenen Methoden incl. Aufrufer erfasst. Die Outputs können wahlweise ascii oder binary sein. Ich möchte nun alle selbstimplementierten Methoden aus dem Logfile selektieren. Dies geht bequem über die Package-Struktur z.B. java.lang.System.arraycopy() ist für mich nicht interessant, da es sich um eine Systemmethode handelt. So, habe ich nun alle für mich relevanten Methoden extrahiert (und jetzt wirds interessant!!) möchte ich aus diesen n Strings eine Baumstruktur aufbauen. Alle haben im Prinzip den gleichen Aufbau: package1.package2.package3...Class.methode() Wie kann ich daraus dynamisch einen Verzeichnis-Baum a la WinExplorer generieren, wobei die Packages Knoten und die Methoden Blätter ergeben sollen? Für Ideen wäre ich sehr dankbar... :D

    Mit StringTokenizer zerlegst Du die Zeile in ihre Einzelteile.
    Und in die bereits genannte Tree-Klasse baust Du die Teile wie folgt ein:
    Fürs [ob]erste Package guckst Du nach, ob der Knoten schon existiert, wenn nein, erzeugst Du ihn.
    Dann guckst Du fürs zweite Package (das erste Unterpackage) in diesem Knoten nach, ob er existiert, wenn nein, erzeugst Du ihn.
    Usw., bis alle Teile verarbeitet sind.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/