net.maizegenetics.gui.PrintHeapAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tassel Show documentation
Show all versions of tassel Show documentation
TASSEL is a software package to evaluate traits associations, evolutionary patterns, and linkage
disequilibrium.
/*
* PrintHeapAction.java
*
* Created on June 18, 2010
*/
package net.maizegenetics.gui;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.net.URL;
import java.util.*;
import javax.swing.*;
import java.text.NumberFormat;
import net.maizegenetics.util.Sizeof;
import net.maizegenetics.util.Utils;
/**
*
* @author terry
*/
public class PrintHeapAction extends AbstractAction implements Runnable {
private static final Map myInstances = new HashMap(1);
public static final String TEXT = "Show Memory";
private final Frame myParentFrame;
private long myLastRecordedHeap = 0;
private static final NumberFormat myFormat = NumberFormat.getInstance();
static {
myFormat.setMaximumFractionDigits(2);
}
private PrintHeapAction(Frame parentFrame) {
super(TEXT, getIcon());
myParentFrame = parentFrame;
}
public static PrintHeapAction getInstance(Frame parentFrame) {
PrintHeapAction result = (PrintHeapAction) myInstances.get(parentFrame);
if (result == null) {
result = new PrintHeapAction(parentFrame);
myInstances.put(parentFrame, result);
}
return result;
}
public void actionPerformed(ActionEvent e) {
Thread thread = new Thread(this);
thread.start();
}
/**
* Method executed when this thread starts that removes all items from the
* associated tree.
*/
public void run() {
StringBuffer buffer = new StringBuffer();
try {
buffer.append("Current Heap Size: ");
long current = Sizeof.getMemoryUse();
String currentStr = myFormat.format(current / 1048576l);
buffer.append(currentStr);
buffer.append(" MB");
buffer.append("\nMax Available Heap: ");
buffer.append(Utils.getMaxHeapSizeMB());
buffer.append(" MB");
buffer.append("\nDelta Since Last Record: ");
String delta = myFormat.format((current - myLastRecordedHeap) / 1048576l);
buffer.append(delta);
buffer.append(" MB\n");
myLastRecordedHeap = current;
} catch (Exception ex) {
buffer.append("\n");
buffer.append(ex.getMessage());
}
String str = buffer.toString();
JOptionPane dialog = new JOptionPane(str, JOptionPane.INFORMATION_MESSAGE);
dialog.showMessageDialog(myParentFrame, str, "Heap Used", JOptionPane.INFORMATION_MESSAGE);
}
private static ImageIcon getIcon() {
URL imageURL = PrintHeapAction.class.getResource("MemoryUse16.gif");
if (imageURL == null) {
return null;
} else {
return new ImageIcon(imageURL);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy