package launchserver.command.basic;
import launcher.helper.JVMHelper;
import launcher.helper.LogHelper;
import launchserver.LaunchServer;
import launchserver.command.Command;
public final class GCCommand extends Command {
public GCCommand(LaunchServer server) {
super(server);
}
@Override
public String getArgsDescription() {
return null;
}
@Override
public String getUsageDescription() {
return "Perform Garbage Collection and print memory usage";
}
@Override
public void invoke(String... args) throws Throwable {
LogHelper.subInfo("Performing full GC");
JVMHelper.fullGC();
// Print memory usage
long max = JVMHelper.RUNTIME.maxMemory() >> 20;
long free = JVMHelper.RUNTIME.freeMemory() >> 20;
long total = JVMHelper.RUNTIME.totalMemory() >> 20;
long used = total - free;
LogHelper.subInfo("Heap usage: %d / %d / %d MiB", used, total, max);
}
}