Skip to content

Laggy charts #202

@abdurasul29052002

Description

@abdurasul29052002

Describe the bug
Rendered charts are too laggy when working with large dataset. In my project I need to show user activity by date. I need to show REGISTERED, ACTIVE, INACTIVE user statistics in one chart. When I load yearly data from server the chart becomes too slow to work with it. Is it a bug or something else. I think it shouldn't happen.

Steps or code example to Reproduce
I have screen record of my case.

20250910-1149-01.9214109.mp4

I think the whole flow is freezing due to this. If there any push updates which should be turned off for large datasets.

Desktop (please complete the following information):

  • OS: Windows 11
  • Browser: Yandex browser
  • Version: 25.8.1.834 (64-bit)

Additional context
I was using stream api to create series when creating chart via builder. Maybe this can be root of the issue.

var apexChart = ApexChartsBuilder.get()
                .withChart(ChartBuilder.get()
                        .withType(com.github.appreciated.apexcharts.config.chart.Type.LINE)
                        .withHeight("350px")
                        .build())
                .withXaxis(XAxisBuilder.get()
                        .withType(XAxisType.CATEGORIES)
                        .withCategories(
                                countCache.values().stream()
                                        .flatMap(List::stream)
                                        .map(d -> d.day().format(getFormatter()))
                                        .distinct()
                                        .toList()
                        ).build()
                )
                .withSeries(
                        typeField.getValue() == null ? (countCache.entrySet().stream()
                                .map(entry -> new Series<>(
                                        entry.getKey().name(),
                                        SeriesType.LINE,
                                        entry.getValue().stream()
                                                .map(d -> d.count().doubleValue())
                                                .toArray(Double[]::new)
                                ))
                                .toArray(Series[]::new)) :
                                (new Series[]{
                                        new Series<>(
                                                typeField.getValue().name(),
                                                SeriesType.LINE,
                                                countCache.get(typeField.getValue()).stream()
                                                        .map(d -> d.count().doubleValue())
                                                        .toArray(Double[]::new)
                                        )
                                })
                )
                .build();

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions