📄 memoryusagedemo.java
字号:
package demo;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
public class MemoryUsageDemo extends JPanel
{
private TimeSeries total = new TimeSeries("Total Memory", Millisecond.class);
private TimeSeries free;
public MemoryUsageDemo(int paramInt)
{
super(new BorderLayout());
this.total.setMaximumItemAge(paramInt);
this.free = new TimeSeries("Free Memory", Millisecond.class);
this.free.setMaximumItemAge(paramInt);
TimeSeriesCollection localTimeSeriesCollection = new TimeSeriesCollection();
localTimeSeriesCollection.addSeries(this.total);
localTimeSeriesCollection.addSeries(this.free);
DateAxis localDateAxis = new DateAxis("Time");
NumberAxis localNumberAxis = new NumberAxis("Memory");
localDateAxis.setTickLabelFont(new Font("SansSerif", 0, 12));
localNumberAxis.setTickLabelFont(new Font("SansSerif", 0, 12));
localDateAxis.setLabelFont(new Font("SansSerif", 0, 14));
localNumberAxis.setLabelFont(new Font("SansSerif", 0, 14));
XYLineAndShapeRenderer localXYLineAndShapeRenderer = new XYLineAndShapeRenderer(true, false);
localXYLineAndShapeRenderer.setSeriesPaint(0, Color.red);
localXYLineAndShapeRenderer.setSeriesPaint(1, Color.green);
localXYLineAndShapeRenderer.setSeriesStroke(0, new BasicStroke(3.0F, 0, 2));
localXYLineAndShapeRenderer.setSeriesStroke(1, new BasicStroke(3.0F, 0, 2));
XYPlot localXYPlot = new XYPlot(localTimeSeriesCollection, localDateAxis, localNumberAxis, localXYLineAndShapeRenderer);
localDateAxis.setAutoRange(true);
localDateAxis.setLowerMargin(0D);
localDateAxis.setUpperMargin(0D);
localDateAxis.setTickLabelsVisible(true);
localNumberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
JFreeChart localJFreeChart = new JFreeChart("JVM Memory Usage", new Font("SansSerif", 1, 24), localXYPlot, true);
ChartUtilities.applyCurrentTheme(localJFreeChart);
ChartPanel localChartPanel = new ChartPanel(localJFreeChart, true);
localChartPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4), BorderFactory.createLineBorder(Color.black)));
add(localChartPanel);
}
private void addTotalObservation(double paramDouble)
{
this.total.add(new Millisecond(), paramDouble);
}
private void addFreeObservation(double paramDouble)
{
this.free.add(new Millisecond(), paramDouble);
}
public static void main(String[] paramArrayOfString)
{
JFrame localJFrame = new JFrame("Memory Usage Demo");
MemoryUsageDemo localMemoryUsageDemo = new MemoryUsageDemo(30000);
localJFrame.getContentPane().add(localMemoryUsageDemo, "Center");
localJFrame.setBounds(200, 120, 600, 280);
localJFrame.setVisible(true);
MemoryUsageDemo tmp56_55 = localMemoryUsageDemo;
tmp56_55.getClass();
new DataGenerator(tmp56_55, 100).start();
localJFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent paramWindowEvent)
{
System.exit(0);
}
});
}
static void access$000(MemoryUsageDemo paramMemoryUsageDemo, double paramDouble)
{
paramMemoryUsageDemo.addTotalObservation(paramDouble);
}
static void access$100(MemoryUsageDemo paramMemoryUsageDemo, double paramDouble)
{
paramMemoryUsageDemo.addFreeObservation(paramDouble);
}
class DataGenerator extends Timer
implements ActionListener
{
private final MemoryUsageDemo this$0;
DataGenerator(, int paramInt)
{
super(paramInt, null);
this.this$0 = paramMemoryUsageDemo;
addActionListener(this);
}
public void actionPerformed()
{
long l1 = Runtime.getRuntime().freeMemory();
long l2 = Runtime.getRuntime().totalMemory();
MemoryUsageDemo.access$000(this.this$0, l2);
MemoryUsageDemo.access$100(this.this$0, l1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -