Как ускорить рисование графиков в Java?
Как ускорить рисование графика в Java? Мне нужно это для эффективного вывода графиков с большими датасетами (100-200 тысяч точек). Думаю распараллелить код, который отрисовывает график, но не понимаю как. Любые предложения...
Вот вполне очевидный код, но где и как его ускорять непонятно:
public class FXLineChart {
private List<Long> dataset;
public FXLineChart(List<Long> dataset) {
this.dataset = dataset;
}
public void drawChart(Stage stage) {
stage.setTitle("Chart");
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
final LineChart<Number,Number> lineChart = new LineChart<Number,Number>(xAxis,yAxis);
lineChart.setTitle("Check dataset");
XYChart.Series series = new XYChart.Series();
for (int i = 0; i < dataset.size(); i++) {
series.getData().add(new XYChart.Data(i, dataset.get(i)));
}
lineChart.getData().add(series);
Scene scene = new Scene(lineChart,800,600);
stage.setScene(scene);
stage.show();
}
}
Если вы хотите порекомендовать библиотеку JFreeChart, то там такая же проблема - непонятно как параллелить код. И вообще я хотел написать свою библиотеку по отрисовке графиков с большими датасетами, но пока не понимаю, на основе чего она будет - javafx, jfreechart или ещё что-то.
P.S. Приведённый выше код (то есть построение графика средствами JavaFX) тормозит на нескольких тысячах точек, JFreeChart получше в этом плане, но с нескольких десятков тысяч точек тоже начинается тормоз...