Как ускорить рисование графиков в 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 получше в этом плане, но с нескольких десятков тысяч точек тоже начинается тормоз...


Ответы (0 шт):