Monitor

mr wong   google bookmarks   del.icio.us   yigg   digg   folkd

Diese Demo zeigt grafisch die aktuelle CPU-Belastung des Jetty Web Servers, der die Web-Seiten dieser Homepage zur Verfügung stellt, in Prozent an. Alle 0,5 Sekunden wird eine Messung durchgeführt - was bei einem Intervall von 60 Sekunden 120 Messpunkte ergibt. Die Grafik wird ca. alle 15 Sekunden am Bildschirm aktualisiert.

Monitor
N├Ąchtes Update in 15 Sek.

Bemerkung

Mit Hilfe des JNI (Java Native Interface) greift diese Demo auf die PDH (Performance Data Helper) Bibliothek des Betriebssystems Windows zu, auf dem dieser Jetty Web Servers läuft. PDH wurde von Microsoft entwickelt, um die bestehenden »Low-Level Perfomance Monitoring«-Fähigkeiten des Betriebssystems in Form einer Bibliothek zu kapseln. Diese Bibliothek arbeitet zeichenkettenorientiert - folgende Zeichenkette würde zum Beispiel die CPU-Belastung ermitteln: "Prozessor(0)\Prozessorzeit (%)". Zum besseren Verständnis ein kurzes Java-Codefragment, welches im Zusammenspiel mit dem JNI die PDH-Bibliothek ansteuert.

...
WinPerfMon  monitor = new WinPerfMon();
if(!monitor.addCounter("\\Prozess(java)\\Prozessorzeit (%)")) {
    // error handling
}
if(!monitor.addCounter("\\Prozess(java)\\Private Bytes")) {
    // error handling
}
int[] vec = monitor.getCounterValues();
System.out.println(
  "Prozessorzeit: " + vec[0] + " Speicherbedarf (KB):" + vec[1] / 1024
);
...

Dieses Beispiel gibt die CPU-Belastung und den Speicherbedarf des laufenden Java-Programms auf dem Bildschirm aus. Dieser Code soll zeigen, dass es möglich ist, in Java effiziente betriebssystemnahe Programme zu entwickeln.