My program was taking an absurdly long time to display the chart after starting up, sometimes even more than 30 minutes! At first I thought the problem was the renderer (due to me having a lot of data to display), but after changing to the FastXY renderer nothing changed.
I then did some debugging and found that the VAST majority of time was being taken on calculating the moving averages with the createMovingAverage function.
Code: Select all
private XYDataset createDataset() {
TimeSeries market;
final TimeSeriesCollection dataset = new TimeSeriesCollection();
try {
market = actor.marketInfo(180); //smaller better, 240 some number
System.out.println("done with process");
final TimeSeries mav = MovingAverage.createMovingAverage(
market, "5 day moving average", 432000000, 0 // 86400000 is one day
);
System.out.println("5 day moving average - done");
final TimeSeries mavShort = MovingAverage.createMovingAverage(
market, "20 day moving average", 1728000000, 0 // 86400000 is one day
);
System.out.println("20 day moving average - done");
dataset.addSeries(market);
dataset.addSeries(mav);
dataset.addSeries(mavShort);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return dataset;
}