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();
}