Klassenhekexer.

Ein einfaches Instrumentierungsagent, das an ein Java-Programm angeschlossen werden kann und dieses Programm ermöglicht, die Speicherverwendung von Objekten abzufragen
Jetzt downloaden

Klassenhekexer. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Freeware
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Neil Coffey
  • Website des Verlags:
  • http://www.javamex.com

Klassenhekexer. Stichworte


Klassenhekexer. Beschreibung

Ein einfacher Instrumentenagent, das an ein Java-Programm angeschlossen werden kann, und ermöglicht dieses Programm, das Speicherverbrauch von Objekten abzufragen ClassMexer ist ein einfacher Java-Instrumentenagent, der einigen Convenience-Anrufe zur Messung der Speichernutzung von Java-Objekten in einem Antrag bereitstellt. Das Projekt liefert derzeit die folgenden statischen Anrufe von der MemorTutil-Klasse, im Inneren des Com.Javamex.Classmexer-Pakets: Öffentliche statische lange MemorySof (Objekt Obj) Öffentliche statische lange DeepMemoryusageOf (Objekt Obj) Öffentliche statische lange DeepMemoryusageOf (Objekt Obj, Visibilating ReferenceFilter) Static Long DeepMemoryusageOfall (Sammlung Objs) Öffentliche statische lange DeepMemoryusageAllage (Sammlung objs, sichtbarkeitFilter-ReferenzFilter) Installieren von KlassenMexer in Ihrem Projekt, um Ihr Projekt einzubauen, um den Klassenmeker zu verwenden: * Zum Kompilieren: Inclipe classmexer.jar in Ihr Projekt oder stellen Sie sicher, dass Sie ihn in den Klassenpfad einfügen, wenn Sie aus der Befehlszeile kompilieren. * Zum Laufen: Add -javaAgent: classmexer.jar an den Befehl Java, der zum Starten Ihrer Anwendung verwendet wird, um sicherzustellen, dass eine Kopie des Gefäßes befindet sich im Arbeitsverzeichnis (das Verzeichnis, von dem Sie den Antrag starten, nicht unbedingt das gleiche wie der Klassenpfad). In Ihrem Quellcode müssen Sie die Klasse com.javamex.classmexer.memoryUtil importieren, um Memoruttutil-CallSthe einfachste Anrufe von der MemorTutil-Klasse zu verwenden Import com.javamex.classmexer.memoryutil; ... lang Nobytes = memkeutil.memoryusageof (etwasObjekt); Diese Methode ist im Wesentlichen ein Wrapper um die JDK-Methode Instrumentation.GETObjectsize (). Daher gibt es nicht immer ein sehr relevantes Ergebnis. Normalerweise ist es interessanter, die "tiefe" Speicherverwendung eines Objekts abzufragen, das "Unterobjekte" enthält (Objekte, die von einem bestimmten Objekt genannt werden). Wenn wir beispielsweise versuchen, die Speichernutzung einer Zeichenfolge mit der MemorySageOfof () abzufragen, werden wir tatsächlich nicht die Zeichen der Zeichenfolge einschließen, da sie in einem von der Zeichenfolge referenzierten Zeichenzeichen (ein separates Objekt) gespeichert sind Objekt selbst.Die TrueMemoryusageOf () Anrufe sollen dieses Problem umgehen. Sie umfassen rekursiv "Unterobjekte" oder Objekte, auf die sich die eingeleiteten "Hauptobjekte" bezeichnet, um die gesamte Speicherverwendung einer Zeichenfolge zu erhalten, können wir verwenden: String Str = "einiger Schnur oder andere"; lange nobytes = Memoruttutil.deepMemoryusageOf (STR); standardmäßig durchläuft die DeepMemoryusageOf () -Methode nicht öffentliche Referenzen (dh Objekte mit einer privaten, geschützten oder paket-privaten Referenz). Für viele Objekte wie Zeichenfolgen ist dies der geeignete Art von Referenz, um folgen ein privater Bezug auf ein "globales" Objekt). Wir können ändern, welchen Referenzen durchlaufen werden, indem wir ein optionaler Sichtbarkeitsfilter weitergeben: Import com.javamex.classmexer.memoryutil; import com.javamex.classmexer.memoryUtil.VisibilityFilter; .. Lange nobytes = memkeutil.deepmemoryusageOf (etwasObjekt, Visibilisierer.All); In diesem Beispiel werden alle Referenzen beim Zählen des Speicherverbrauchs des Objekts gelöst. Andere derzeit unterstützte Optionen sind None und Private_Only.Total-Speichernutzung mehrerer Objektsthe DeepMemoryusageOfall () -Methoden Nehmen Sie eine Sammlung von Objekten und fügen Sie die gesamte Speicherverwendung aller Objekte in der mitgelieferten Sammlung hinzu. Wenn kein VisibilityFilter bereitgestellt wird, ist der Standardeinstellung nicht wie oben angegeben. Diese Methoden stellen sicher, dass kein Objekt mehr als einmal gezählt wird, auch wenn Objekte mehrere Referenzen aufweisen. (Die Single-Objekt-Anrufe trifft auch diese Garantie, da es selbstverständlich für das Objektdiagramm beginnen, das mit einem einzigen Objekt beginnen, um schließlich mehrere Verweise auf dasselbe Objekt einzuschließen.) Anforderungen: · Java 2 Standard Edition Runtime-Umgebung


Klassenhekexer. Zugehörige Software