<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FJFreeChart_Performance</id>
		<title>Java/Chart/JFreeChart Performance - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FJFreeChart_Performance"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/JFreeChart_Performance&amp;action=history"/>
		<updated>2026-04-21T15:41:31Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/JFreeChart_Performance&amp;diff=7995&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/JFreeChart_Performance&amp;diff=7995&amp;oldid=prev"/>
				<updated>2010-06-01T06:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:52, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/JFreeChart_Performance&amp;diff=7994&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/JFreeChart_Performance&amp;diff=7994&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A basic performance test for a couple of common operations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * ----------------&lt;br /&gt;
 * Performance.java&lt;br /&gt;
 * ----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited).&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: Performance.java,v 1.10 2004/04/26 19:12:00 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes (since 11-Oct-2002)&lt;br /&gt;
 * ---------------------------&lt;br /&gt;
 * 11-Oct-2002 : Fixed errors reported by Checkstyle (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.geom.Line2D;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
/**&lt;br /&gt;
 * A basic performance test for a couple of common operations.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class Performance {&lt;br /&gt;
    /** The value. */&lt;br /&gt;
    private double value = 2.0;&lt;br /&gt;
    /** The number. */&lt;br /&gt;
    private Double number = new Double(this.value);&lt;br /&gt;
    /**&lt;br /&gt;
     * Default constructor.&lt;br /&gt;
     */&lt;br /&gt;
    public Performance() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates lines in a loop.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of lines to create.&lt;br /&gt;
     */&lt;br /&gt;
    public void createLines(final int count) {&lt;br /&gt;
        Line2D line = new Line2D.Double();&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            line = new Line2D.Double(1.0, 1.0, 1.0, 1.0);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(line.toString());&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates one line, then repeatedly calls the setLine method.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to call the setLine method.&lt;br /&gt;
     */&lt;br /&gt;
    public void setLines(final int count) {&lt;br /&gt;
        final Line2D line = new Line2D.Double(0.0, 0.0, 0.0, 0.0);&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            line.setLine(1.0, 1.0, 1.0, 1.0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Repeatedly grabs a value from a Number instance.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to call doubleValue().&lt;br /&gt;
     */&lt;br /&gt;
    public void getNumber(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = this.number.doubleValue();&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Repeatedly grabs a value from a double.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to fetch the value.&lt;br /&gt;
     */&lt;br /&gt;
    public void getValue(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = this.value;&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Writes the current time to the console.&lt;br /&gt;
     *&lt;br /&gt;
     * @param text  the prefix.&lt;br /&gt;
     * @param time  the time.&lt;br /&gt;
     */&lt;br /&gt;
    public void writeTime(final String text, final Date time) {&lt;br /&gt;
        System.out.println(text + &amp;quot; : &amp;quot; + time.getTime());&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final Performance p = new Performance();&lt;br /&gt;
        System.out.println(&amp;quot;Simple performance tests.&amp;quot;);&lt;br /&gt;
        final Date start1 = new Date();&lt;br /&gt;
        p.createLines(100000);&lt;br /&gt;
        final Date end1 = new Date();&lt;br /&gt;
        final Date start2 = new Date();&lt;br /&gt;
        p.setLines(100000);&lt;br /&gt;
        final Date end2 = new Date();&lt;br /&gt;
        p.writeTime(&amp;quot;Start create lines&amp;quot;, start1);&lt;br /&gt;
        p.writeTime(&amp;quot;Finish create lines&amp;quot;, end1);&lt;br /&gt;
        p.writeTime(&amp;quot;Start set lines&amp;quot;, start2);&lt;br /&gt;
        p.writeTime(&amp;quot;Finish set lines&amp;quot;, end2);&lt;br /&gt;
        final Date start3 = new Date();&lt;br /&gt;
        p.getNumber(1000000);&lt;br /&gt;
        final Date end3 = new Date();&lt;br /&gt;
        final Date start4 = new Date();&lt;br /&gt;
        p.getValue(1000000);&lt;br /&gt;
        final Date end4 = new Date();&lt;br /&gt;
        p.writeTime(&amp;quot;Start get number&amp;quot;, start3);&lt;br /&gt;
        p.writeTime(&amp;quot;Finish get number&amp;quot;, end3);&lt;br /&gt;
        p.writeTime(&amp;quot;Start get value&amp;quot;, start4);&lt;br /&gt;
        p.writeTime(&amp;quot;Finish get value&amp;quot;, end4);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A basic performance test for a couple of common operations 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * Performance2.java&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited).&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: Performance2.java,v 1.10 2004/04/26 19:12:00 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes (since 11-Oct-2002)&lt;br /&gt;
 * ---------------------------&lt;br /&gt;
 * 11-Oct-2002 : Fixed errors reported by Checkstyle (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
/**&lt;br /&gt;
 * A basic performance test for a couple of common operations.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class Performance2 {&lt;br /&gt;
    /** A double primitive. */&lt;br /&gt;
    private double primitive = 42.0;&lt;br /&gt;
    /** A number object. */&lt;br /&gt;
    private Number object = new Double(42.0);&lt;br /&gt;
    /**&lt;br /&gt;
     * Default constructor.&lt;br /&gt;
     */&lt;br /&gt;
    public Performance2() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Just use double value - should be fast.&lt;br /&gt;
     *&lt;br /&gt;
     * @return the double value.&lt;br /&gt;
     */&lt;br /&gt;
    public double getPrimitive() {&lt;br /&gt;
        return this.primitive;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a Number object every time the primitive is accessed - should be really slow.&lt;br /&gt;
     *&lt;br /&gt;
     * @return creates and returns a Number object.&lt;br /&gt;
     */&lt;br /&gt;
    public Number getPrimitiveAsObject() {&lt;br /&gt;
        return new Double(this.primitive);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns the object - caller has to use doubleValue() method.&lt;br /&gt;
     *&lt;br /&gt;
     * @return an existing Number object.&lt;br /&gt;
     */&lt;br /&gt;
    public Number getObject() {&lt;br /&gt;
        return this.object;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns a double value generated from the Object - should be similar to previous method,&lt;br /&gt;
     * but is not!&lt;br /&gt;
     *&lt;br /&gt;
     * @return the doubleValue() for the Number.&lt;br /&gt;
     */&lt;br /&gt;
    public double getObjectAsPrimitive() {&lt;br /&gt;
        return this.object.doubleValue();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Cycles through accessing the primitive.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to access.&lt;br /&gt;
     */&lt;br /&gt;
    public void getPrimitiveLoop(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = getPrimitive();&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Cycles through accessing the primitive as an object.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to access.&lt;br /&gt;
     */&lt;br /&gt;
    public void getPrimitiveAsObjectLoop(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = getPrimitiveAsObject().doubleValue();&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Cycles through accessing the object as a primitive.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to access.&lt;br /&gt;
     */&lt;br /&gt;
    public void getObjectAsPrimitiveLoop(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = getObjectAsPrimitive();&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Cycles through accessing the object.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the number of times to access.&lt;br /&gt;
     */&lt;br /&gt;
    public void getObjectLoop(final int count) {&lt;br /&gt;
        double d = 0.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            d = getObject().doubleValue();&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(d);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Outputs the current status to the console.&lt;br /&gt;
     *&lt;br /&gt;
     * @param label  the label.&lt;br /&gt;
     * @param start  the start time.&lt;br /&gt;
     * @param end  the end time.&lt;br /&gt;
     */&lt;br /&gt;
    public void status(final String label, final Date start, final Date end) {&lt;br /&gt;
        final long elapsed = end.getTime() - start.getTime();&lt;br /&gt;
        System.out.println(label + start.getTime() + &amp;quot;--&amp;gt;&amp;quot; + end.getTime() + &amp;quot; = &amp;quot; + elapsed);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * The starting point for the performance test.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final Performance2 performance = new Performance2();&lt;br /&gt;
        final int count = 10000000;&lt;br /&gt;
        for (int repeat = 0; repeat &amp;lt; 3; repeat++) {  // repeat a few times just to make&lt;br /&gt;
                                                      // sure times are consistent&lt;br /&gt;
            final Date s1 = new Date();&lt;br /&gt;
            performance.getPrimitiveLoop(count);&lt;br /&gt;
            final Date e1 = new Date();&lt;br /&gt;
            performance.status(&amp;quot;getPrimitive() : &amp;quot;, s1, e1);&lt;br /&gt;
            final Date s2 = new Date();&lt;br /&gt;
            performance.getPrimitiveAsObjectLoop(count);&lt;br /&gt;
            final Date e2 = new Date();&lt;br /&gt;
            performance.status(&amp;quot;getPrimitiveAsObject() : &amp;quot;, s2, e2);&lt;br /&gt;
            final Date s3 = new Date();&lt;br /&gt;
            performance.getObjectLoop(count);&lt;br /&gt;
            final Date e3 = new Date();&lt;br /&gt;
            performance.status(&amp;quot;getObject() : &amp;quot;, s3, e3);&lt;br /&gt;
            final Date s4 = new Date();&lt;br /&gt;
            performance.getObjectAsPrimitiveLoop(count);&lt;br /&gt;
            final Date e4 = new Date();&lt;br /&gt;
            performance.status(&amp;quot;getObjectAsPrimitive() : &amp;quot;, s4, e4);&lt;br /&gt;
            System.out.println(&amp;quot;-------------------&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Chart Timing 1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * ChartTiming1.java&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * (C) Copyright 2001-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: ChartTiming1.java,v 1.12 2004/04/26 19:11:53 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes (from 24-Apr-2002)&lt;br /&gt;
 * --------------------------&lt;br /&gt;
 * 24-Apr-2002 : Added standard header (DG);&lt;br /&gt;
 * 29-Oct-2002 : Modified to use javax.swing.Timer (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.geom.Rectangle2D;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import javax.swing.Timer;&lt;br /&gt;
import org.jfree.chart.ChartFactory;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.data.general.DefaultPieDataset;&lt;br /&gt;
/**&lt;br /&gt;
 * Draws a pie chart over and over for 10 seconds.  Reports on how many redraws were achieved.&lt;br /&gt;
 * &amp;lt;p&amp;gt;&lt;br /&gt;
 * On my PC (SuSE Linux 8.2, JDK 1.4, 256mb RAM, 2.66ghz Pentium) I get 90-95 charts per second.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class ChartTiming1 implements ActionListener {&lt;br /&gt;
    /** A flag that indicates when time is up. */&lt;br /&gt;
    private boolean finished;&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a new application.&lt;br /&gt;
     */&lt;br /&gt;
    public ChartTiming1() {&lt;br /&gt;
        // nothing to do&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Runs the timing.&lt;br /&gt;
     */&lt;br /&gt;
    public void run() {&lt;br /&gt;
        this.finished = false;&lt;br /&gt;
        // create a dataset...&lt;br /&gt;
        final DefaultPieDataset data = new DefaultPieDataset();&lt;br /&gt;
        data.setValue(&amp;quot;One&amp;quot;, new Double(10.3));&lt;br /&gt;
        data.setValue(&amp;quot;Two&amp;quot;, new Double(8.5));&lt;br /&gt;
        data.setValue(&amp;quot;Three&amp;quot;, new Double(3.9));&lt;br /&gt;
        data.setValue(&amp;quot;Four&amp;quot;, new Double(3.9));&lt;br /&gt;
        data.setValue(&amp;quot;Five&amp;quot;, new Double(3.9));&lt;br /&gt;
        data.setValue(&amp;quot;Six&amp;quot;, new Double(3.9));&lt;br /&gt;
        // create a pie chart...&lt;br /&gt;
        final boolean withLegend = true;&lt;br /&gt;
        final JFreeChart chart = ChartFactory.createPieChart(&lt;br /&gt;
            &amp;quot;Testing&amp;quot;, &lt;br /&gt;
            data, &lt;br /&gt;
            withLegend,&lt;br /&gt;
            true,&lt;br /&gt;
            false&lt;br /&gt;
        );&lt;br /&gt;
        final BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
        final Graphics2D g2 = image.createGraphics();&lt;br /&gt;
        final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 400, 300);&lt;br /&gt;
        // set up the timer...&lt;br /&gt;
        final Timer timer = new Timer(10000, this);&lt;br /&gt;
        timer.setRepeats(false);&lt;br /&gt;
        int count = 0;&lt;br /&gt;
        timer.start();&lt;br /&gt;
        while (!this.finished) {&lt;br /&gt;
            chart.draw(g2, chartArea, null, null);&lt;br /&gt;
            System.out.println(&amp;quot;Charts drawn...&amp;quot; + count);&lt;br /&gt;
            if (!this.finished) {&lt;br /&gt;
                count++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(&amp;quot;DONE&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Receives notification of action events (in this case, from the Timer).&lt;br /&gt;
     *&lt;br /&gt;
     * @param event  the event.&lt;br /&gt;
     */&lt;br /&gt;
    public void actionPerformed(final ActionEvent event) {&lt;br /&gt;
        this.finished = true;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final ChartTiming1 app = new ChartTiming1();&lt;br /&gt;
        app.run();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Chart Timing 3 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * ChartTiming3.java&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: ChartTiming3.java,v 1.15 2004/04/26 19:11:53 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 29-Oct-2002 : Version 1 (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.geom.Rectangle2D;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import javax.swing.Timer;&lt;br /&gt;
import org.jfree.chart.ChartFactory;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.plot.PlotOrientation;&lt;br /&gt;
import org.jfree.chart.plot.XYPlot;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYDotRenderer;&lt;br /&gt;
import org.jfree.data.xy.XYDataset;&lt;br /&gt;
import org.jfree.data.xy.XYSeries;&lt;br /&gt;
import org.jfree.data.xy.XYSeriesCollection;&lt;br /&gt;
/**&lt;br /&gt;
 * Draws a scatter plot over and over for 10 seconds.  Reports on how many redraws were achieved.&lt;br /&gt;
 * &amp;lt;p&amp;gt;&lt;br /&gt;
 * On my PC (SuSE Linux 8.2, JDK 1.4, 256mb RAM, 2.66ghz Pentium) I get 13-14 charts per second.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class ChartTiming3 implements ActionListener {&lt;br /&gt;
    /** A flag that indicates when time is up. */&lt;br /&gt;
    private boolean finished;&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a new application.&lt;br /&gt;
     */&lt;br /&gt;
    public ChartTiming3() {&lt;br /&gt;
        // nothing to do&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Runs the test.&lt;br /&gt;
     */&lt;br /&gt;
    public void run() {&lt;br /&gt;
        this.finished = false;&lt;br /&gt;
        // create a dataset...&lt;br /&gt;
        final XYSeries series = new XYSeries(&amp;quot;Random Data&amp;quot;);&lt;br /&gt;
        for (int i = 0; i &amp;lt; 1440; i++) {&lt;br /&gt;
            final double x = Math.random();&lt;br /&gt;
            final double y = Math.random();&lt;br /&gt;
            series.add(x, y);&lt;br /&gt;
        }&lt;br /&gt;
        final XYDataset data = new XYSeriesCollection(series);&lt;br /&gt;
        // create a scatter chart...&lt;br /&gt;
        final boolean withLegend = true;&lt;br /&gt;
        final JFreeChart chart = ChartFactory.createScatterPlot(&lt;br /&gt;
            &amp;quot;Scatter plot timing&amp;quot;, &amp;quot;X&amp;quot;, &amp;quot;Y&amp;quot;,&lt;br /&gt;
            data, &lt;br /&gt;
            PlotOrientation.VERTICAL,&lt;br /&gt;
            withLegend, &lt;br /&gt;
            false, &lt;br /&gt;
            false&lt;br /&gt;
        );&lt;br /&gt;
        final XYPlot plot = chart.getXYPlot();&lt;br /&gt;
        plot.setRenderer(new XYDotRenderer());&lt;br /&gt;
        final BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
        final Graphics2D g2 = image.createGraphics();&lt;br /&gt;
        final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 400, 300);&lt;br /&gt;
        // set up the timer...&lt;br /&gt;
        final Timer timer = new Timer(10000, this);&lt;br /&gt;
        timer.setRepeats(false);&lt;br /&gt;
        int count = 0;&lt;br /&gt;
        timer.start();&lt;br /&gt;
        while (!this.finished) {&lt;br /&gt;
            chart.draw(g2, chartArea, null, null);&lt;br /&gt;
            System.out.println(&amp;quot;Charts drawn...&amp;quot; + count);&lt;br /&gt;
            if (!this.finished) {&lt;br /&gt;
                count++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(&amp;quot;DONE&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Receives notification of action events (in this case, from the Timer).&lt;br /&gt;
     *&lt;br /&gt;
     * @param event  the event.&lt;br /&gt;
     */&lt;br /&gt;
    public void actionPerformed(final ActionEvent event) {&lt;br /&gt;
        this.finished = true;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final ChartTiming3 app = new ChartTiming3();&lt;br /&gt;
        app.run();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Chart Timing 4 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * ChartTiming4.java&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: ChartTiming4.java,v 1.16 2004/04/26 19:11:53 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 29-Oct-2002 : Version 1 (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.geom.Rectangle2D;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import javax.swing.Timer;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.axis.NumberAxis;&lt;br /&gt;
import org.jfree.chart.plot.FastScatterPlot;&lt;br /&gt;
import org.jfree.chart.plot.Plot;&lt;br /&gt;
/**&lt;br /&gt;
 * Draws a scatter plot over and over for 10 seconds.  Reports on how many redraws were achieved.&lt;br /&gt;
 * &amp;lt;p&amp;gt;&lt;br /&gt;
 * On my PC (SuSE Linux 8.2, JDK 1.4, 256mb RAM, 2.66ghz Pentium) I get 31 charts per second.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class ChartTiming4 implements ActionListener {&lt;br /&gt;
    /** A flag that indicates when time is up. */&lt;br /&gt;
    private boolean finished;&lt;br /&gt;
    /** Storage for the data. */&lt;br /&gt;
    private float[][] data = new float[2][1440];&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a new application.&lt;br /&gt;
     */&lt;br /&gt;
    public ChartTiming4() {&lt;br /&gt;
        // nothing to do&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Runs the test.&lt;br /&gt;
     */&lt;br /&gt;
    public void run() {&lt;br /&gt;
        this.finished = false;&lt;br /&gt;
        // create a dataset...&lt;br /&gt;
        populateData();&lt;br /&gt;
        // create a fast scatter chart...&lt;br /&gt;
        final Plot plot = new FastScatterPlot(this.data, new NumberAxis(&amp;quot;X&amp;quot;), new NumberAxis(&amp;quot;Y&amp;quot;));&lt;br /&gt;
        final JFreeChart chart = new JFreeChart(&lt;br /&gt;
            &amp;quot;Fast Scatter Plot Timing&amp;quot;,&lt;br /&gt;
            JFreeChart.DEFAULT_TITLE_FONT,&lt;br /&gt;
            plot, &lt;br /&gt;
            true&lt;br /&gt;
        );&lt;br /&gt;
        final BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
        final Graphics2D g2 = image.createGraphics();&lt;br /&gt;
        final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 400, 300);&lt;br /&gt;
        // set up the timer...&lt;br /&gt;
        final Timer timer = new Timer(10000, this);&lt;br /&gt;
        timer.setRepeats(false);&lt;br /&gt;
        int count = 0;&lt;br /&gt;
        timer.start();&lt;br /&gt;
        while (!this.finished) {&lt;br /&gt;
            chart.draw(g2, chartArea, null, null);&lt;br /&gt;
            System.out.println(&amp;quot;Charts drawn...&amp;quot; + count);&lt;br /&gt;
            if (!this.finished) {&lt;br /&gt;
                count++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(&amp;quot;DONE&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Receives notification of action events (in this case, from the Timer).&lt;br /&gt;
     *&lt;br /&gt;
     * @param event  the event.&lt;br /&gt;
     */&lt;br /&gt;
    public void actionPerformed(final ActionEvent event) {&lt;br /&gt;
        this.finished = true;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Populates the data array with random values.&lt;br /&gt;
     */&lt;br /&gt;
    private void populateData() {&lt;br /&gt;
        for (int i = 0; i &amp;lt; this.data[0].length; i++) {&lt;br /&gt;
            final float x = i;&lt;br /&gt;
            this.data[0][i] = x;&lt;br /&gt;
            this.data[1][i] = 100 + (2 * x) + (float) Math.random() * 1440;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final ChartTiming4 app = new ChartTiming4();&lt;br /&gt;
        app.run();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>