#!/usr/bin/env jruby require 'jmx4r' def display header, memory_usage puts header memory_usage.composite_type.key_set.each do |type| puts "\t#{type} : #{memory_usage.get type}" end end memory = JMX::MBean.find_by_name "java.lang:type=Memory" display "Heap Memory Usage", memory.heap_memory_usage display "Non Heap Memory Usage", memory.heap_memory_usage if ARGV.length == 1 and ARGV[0] == "gc" puts "trigger a garbage collection" memory.gc display "Heap Memory Usage", memory.heap_memory_usage display "Non Heap Memory Usage", memory.heap_memory_usage end