org.jfree.chart.demo.PerformanceTest1.java Source code

Java tutorial

Introduction

Here is the source code for org.jfree.chart.demo.PerformanceTest1.java

Source

package org.jfree.chart.demo;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.Collections;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.time.FixedMillisecond;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;

public class PerformanceTest1 extends ApplicationFrame {

    private static final long serialVersionUID = 1L;

    public PerformanceTest1(String s) {
        super(s);
        timings = new TimeSeries("Timings");
        TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timings);
        JFreeChart jfreechart = createChart(timeseriescollection);
        ChartPanel chartpanel = new ChartPanel(jfreechart);
        chartpanel.setPreferredSize(new Dimension(500, 270));
        chartpanel.setMouseZoomable(true, false);
        setContentPane(chartpanel);
    }

    private static JFreeChart createChart(XYDataset xydataset) {
        JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("Performance Test 1", "Time", "Milliseconds",
                xydataset, true, true, false);
        jfreechart.setBackgroundPaint(Color.white);
        XYPlot xyplot = (XYPlot) jfreechart.getPlot();
        xyplot.setBackgroundPaint(Color.lightGray);
        xyplot.setDomainGridlinePaint(Color.white);
        xyplot.setRangeGridlinePaint(Color.white);
        xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
        xyplot.setDomainCrosshairVisible(true);
        xyplot.setRangeCrosshairVisible(true);
        org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = xyplot.getRenderer();
        if (xyitemrenderer instanceof StandardXYItemRenderer) {
            StandardXYItemRenderer standardxyitemrenderer = (StandardXYItemRenderer) xyitemrenderer;
            standardxyitemrenderer.setSeriesStroke(0, new BasicStroke(1.1F));
        }
        return jfreechart;
    }

    public static JPanel createDemoPanel() {
        JFreeChart jfreechart = createChart(null);
        return new ChartPanel(jfreechart);
    }

    public void addObservation(long l) {
        timings.addOrUpdate(new Millisecond(), l);
    }

    public static void main2(String as[]) {
        PerformanceTest1 performancetest1 = new PerformanceTest1("Performance Test 1");
        performancetest1.pack();
        RefineryUtilities.centerFrameOnScreen(performancetest1);
        performancetest1.setVisible(true);
        TimeSeries timeseries = new TimeSeries("Test");
        timeseries.setMaximumItemAge(200L);
        do {
            Millisecond millisecond = new Millisecond();
            long l = System.currentTimeMillis();
            for (int i = 0; i < 200; i++) {
                millisecond = (Millisecond) millisecond.next();
                timeseries.addOrUpdate(millisecond, 1.0D);
            }

            long l1 = System.currentTimeMillis();
            performancetest1.addObservation(l1 - l);
        } while (true);
    }

    public static void main4(String as[]) {
        TimeSeries timeseries = new TimeSeries("Test");
        timeseries.setMaximumItemCount(4000);
        FixedMillisecond fixedmillisecond = new FixedMillisecond();
        for (int i = 0; i < 40000; i++) {
            long l = System.currentTimeMillis();
            for (int j = 0; j < 400; j++) {
                fixedmillisecond = (FixedMillisecond) fixedmillisecond.next();
                timeseries.add(fixedmillisecond, Math.random());
            }

            long l1 = System.currentTimeMillis();
            System.out.println(i + " --> " + (l1 - l) + " (" + Runtime.getRuntime().freeMemory() + " / "
                    + Runtime.getRuntime().totalMemory() + ")");
        }

    }

    public static void main5(String as[]) {
        XYSeries xyseries = new XYSeries("Test");
        xyseries.setMaximumItemCount(4000);
        int i = 0;
        for (int j = 0; j < 40000; j++) {
            long l = System.currentTimeMillis();
            for (int k = 0; k < 4000; k++)
                xyseries.add(i++, Math.random());

            long l1 = System.currentTimeMillis();
            System.out.println(j + " --> " + (l1 - l) + " (" + Runtime.getRuntime().freeMemory() + " / "
                    + Runtime.getRuntime().totalMemory() + ")");
        }

    }

    public static void main(String args[]) {
        ArrayList<Double> arraylist = new ArrayList<Double>();
        for (int i = 0; i < 4000; i++)
            arraylist.add(new Double(Math.random()));

        int j = 0;
        for (int k = 0; k < 20000; k++) {
            long l = System.currentTimeMillis();
            for (int i1 = 0; i1 < 0xf4240; i1++)
                j += i1;

            long l1 = System.currentTimeMillis();
            System.out.println(k + " --> " + (l1 - l) + " (" + Runtime.getRuntime().freeMemory() + " / "
                    + Runtime.getRuntime().totalMemory() + ")");
        }

    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main3(String as[]) {
        ArrayList arraylist = new ArrayList();
        Millisecond millisecond = new Millisecond();
        for (int i = 0; i < 200; i++) {
            millisecond = (Millisecond) millisecond.next();
            arraylist.add(millisecond);
        }

        for (int j = 0; j < 2000; j++) {
            long l = System.currentTimeMillis();
            Collections.binarySearch(arraylist, new Millisecond());
            long l1 = System.currentTimeMillis();
            System.out.println(j + " --> " + (l1 - l) + " (" + Runtime.getRuntime().freeMemory() + " / "
                    + Runtime.getRuntime().totalMemory() + ")");
        }

    }

    private TimeSeries timings;
}