Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#3

AW: VisualMM - Runtime Monitoring für den FastMM Memory Manager

  Alt 4. Jan 2012, 12:51
Ui, das finde ich ja hübsch! Wie aufwändig wäre es, das statt des Webinterfaces in ein ins Programm integriertes Modul (Komponente oder Unit mit eingängigem Interface) zu pressen? Wäre für mich sehr praktisch, da ich einige Langzeitsysteme habe, die aber nicht am Internet hängen (dürfen), bei denen ich gerne nachprüfen würde, ob meine "ReportMemoryLeaksOnShutdown"-Sandbox-Tests und "Taskmanagerspeicherverbrauchbegucken" auch im lebenden System noch so gut aussehen. Dafür müsste ich das eben nur lokal auf der Maschine irgendwie loggen und ggf. aufbereiten/anzeigen können.
Das geht im Prinzip problemlos. Die Daten werden über eine Middleware zwischengespeichert, der es egal ist wer (Webinterface oder GUI Anwendung) oder wieviele auf die Daten zugreifen: wenn eine Anwendung über das Webinterface überwacht wird, können gleichzeitig eine oder mehrere GUI Clientanwendungen die gleichen Daten abfragen.

Daraus ergibt sich, dass das GUI Interface auch in die überwachte Anwendung integriert werden kann. Der Overhead der sich aus der Aufbereitung der Daten ergibt hängt davon ab, ob nur aktuelle Daten (Snapshots) oder auch Zeitverläufe (Timelines aus z.B. jeweils den letzten 100 Datensätzen) gebildet werden.

Internetzugriff ist eigentlich nicht erforderlich (lediglich in der Demo benutze ich die Google Chart API Javascript Bibliotheken, die im Internet liegen, man könnte sie im Prinzip auch lokal speichern oder durch andere ersetzen).

Am einfachsten wäre es in die Anwendung eine Javascript-fähige Webbrowser-Komponente einzubinden, die dann auf den eingebetteten VisualVM (HTTP-)server zugreift. Das geht problemlos bei geschlossener Firewall. Ich schaue mal ob das in der ersten Release machbar ist.

p.s. das dynamische Beispieldokument unter http://www.habarisoft.com/visualmm.html enthält jetzt vier Charts, zwei sind nach Allokationsgröße und zwei nach Zeitpunkten auf der X-Achse aufgebaut:

1. FastMM Memory Block Count (current snapshot)
2. FastMM Overall Block Count (timeline for last n snapshots)
3. FastMM Memory Block Size (current snapshot)
4. FastMM Overall Block Size (timeline for last n snapshots)
Michael Justin
habarisoft.com

Geändert von mjustin ( 5. Jan 2012 um 21:09 Uhr)
  Mit Zitat antworten Zitat