Speicherinformationen über MBean ausgeben


Früher war die einzige Möglichkeit um Systeminformationen zu erhalten, die Klasse Runtime. In JEE Versionen ab Version 6 kann über die JMX (Java Managment Extension) auf diese Informationen zugegriffen werden. Eine entsprechende Bean kann mit Hilfe von

final MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();

angefordert werden. Eine Ausgabe kann wie folgt realisiert werden, wobei die Werte noch formatiert werden sollten.

/** @return Nutzung heap / nonHeap Informationstexte */
public String getMemoryInfoText() {
    StringBuilder buffer = new StringBuilder();
    MemoryUsage memHeap = this.memoryBean.getHeapMemoryUsage();
    MemoryUsage memNonHeap = this.memoryBean.getNonHeapMemoryUsage();
    if (memHeap != null) {
        buffer.append("Heap: " + memHeap.getUsed() + " / " + memHeap.getCommitted( + " / " + memHeap.getMax());
    }
    if (memNonHeap != null) {
        if (buffer.length() > 0) {
            buffer.append("\n");
        }
        buffer.append("NonHeap: " + memNonHeap.getUsed() + " / " + memNonHeap.getCommitted() + " / " + memNonHeap.getMax());
    }
    return buffer.toString();
}

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de

,