JFreeChart学习(三)——动态打印java内存使用情况
来源:互联网 发布:淘宝怎么搜索同城店铺 编辑:程序博客网 时间:2024/06/07 01:03
JFreeChart动态打印java内存使用情况
import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; 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.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.XYLineAndShapeRenderer; import org.jfree.data.time.Millisecond; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.ui.RectangleInsets; public class MemoryUsage extends JPanel { class DataGenerator extends Timer implements ActionListener { /* * Invoked when an action occurs. * * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ public void actionPerformed(ActionEvent actionevent) { long free = Runtime.getRuntime().freeMemory(); long total = Runtime.getRuntime().totalMemory(); addTotalObservation(total); addFreeObservation(free); } DataGenerator(int i) { super(i, null); addActionListener(this); } } public MemoryUsage(int maxItemAge) { super(new BorderLayout()); total = new TimeSeries("Total Memory", org.jfree.data.time.Millisecond.class); total.setMaximumItemAge(maxItemAge); // free = new TimeSeries("Free Memory", // org.jfree.data.time.Millisecond.class); free = new TimeSeries("Free Memory"); free.setMaximumItemAge(maxItemAge); TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); timeseriescollection.addSeries(total); timeseriescollection.addSeries(free); DateAxis dateaxis = new DateAxis("Time"); NumberAxis numberaxis = new NumberAxis("Memory"); dateaxis.setTickLabelFont(new Font("SansSerif", 0, 12)); numberaxis.setTickLabelFont(new Font("SansSerif", 0, 12)); dateaxis.setLabelFont(new Font("SansSerif", 0, 14)); numberaxis.setLabelFont(new Font("SansSerif", 0, 14)); dateaxis.setAutoRange(true); dateaxis.setLowerMargin(0.0D); dateaxis.setUpperMargin(0.0D); dateaxis.setTickLabelsVisible(true); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer( true, false); xylineandshaperenderer.setSeriesPaint(0, Color.RED); // 改变第一个Series的颜色 xylineandshaperenderer.setSeriesPaint(1, Color.YELLOW);// 改变第二个Series的颜色 xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(1F, 0, 2)); xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(1F, 0, 2)); XYPlot xyplot = new XYPlot(timeseriescollection, dateaxis, numberaxis, xylineandshaperenderer); xyplot.setBackgroundPaint(Color.BLACK); // 改变背景颜色 xyplot.setDomainGridlinePaint(Color.white); xyplot.setRangeGridlinePaint(Color.white); xyplot.setAxisOffset(new RectangleInsets(1D, 1D, 1D, 1D)); JFreeChart jfreechart = new JFreeChart("JVM Memory Usage", new Font( "SansSerif", 1, 24), xyplot, true); jfreechart.setBackgroundPaint(Color.white); ChartPanel chartpanel = new ChartPanel(jfreechart, true); chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory .createEmptyBorder(10, 10, 10, 10), BorderFactory .createLineBorder(Color.black))); add(chartpanel); } private void addTotalObservation(double d) { total.add(new Millisecond(), d); } private void addFreeObservation(double d) { free.add(new Millisecond(), d); } /** * @param args */ public static void main(String[] args) { JFrame jframe = new JFrame("JVM Memory Usage"); MemoryUsage memoryusagedemo = new MemoryUsage(10000); jframe.getContentPane().add(memoryusagedemo, "Center"); jframe.setBounds(200, 120, 1000, 500); jframe.setVisible(true); (memoryusagedemo.new DataGenerator(1000)).start(); jframe.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowevent) { System.exit(0); } }); } private TimeSeries total; private TimeSeries free; }
0 0
- JFreeChart学习(三)——动态打印java内存使用情况
- 打印IOS设备内存使用情况
- JAVA基础应用——JFreeChart 使用
- Linux学习总结(10)——Linux查看CPU和内存使用情况
- 对于Java内存使用情况
- JAVA查看内存使用情况
- JFreeChart 详细介绍使用(三)
- java线程学习(三)—java内存模型
- adb 打印终端中内存使用情况的方法
- iOS - 代码查看控制台打印内存使用情况:
- adb 打印终端中内存使用情况的方法
- Android内存详解——内存使用情况
- 关于Android最佳性能实践——分析内存的使用情况学习笔记
- java中JFreeChart使用
- 【JFreeChart报表组件】使用JFreeChart进行图形报表打印
- 监控Java应用程序Windows内存使用情况
- java获取电脑的内存使用情况
- Java进程的内存使用情况
- 如何在代码中跑Linux指令
- JQuery url长度太长,导致报错
- Linux设备模型(7)_Class
- H5移动应用的发布优化(四)图片优化
- hive中日期与时间戳转换
- JFreeChart学习(三)——动态打印java内存使用情况
- 放大分析双缓冲类时间计算问题
- jvisualvm远程监控 visualgc插件 不受此jvm支持
- spring mvc 如何传递集合参数(list,数组)
- 吃糖果
- 最后一本书 第六章课后练习3,4
- 用Hive+Hadoop集群实现《飞机票购买人群分类案例》思路+代码 (实验数据待整理)
- zoj-【2857 Image Transformation 】
- 算法导论之分治法