Как повысить производительность для создания Excel при обработке больших данных - PullRequest
0 голосов
/ 07 августа 2020

При работе над созданием POI excel существует потребность в обработке огромного набора данных, одновременно обрабатывается от 80 до 100 тысяч строк. Из-за того, что при создании Excel задействован объем данных, для создания Excel требуется много памяти и времени. Я использую API потоковой передачи apahce POI для создания книги.

Текущий дизайн работает, как показано ниже

  1. Вызов базы данных для набора результатов (список содержит вложенные объекты)

  2. Двойной итерация по списку для получения сведений о вложенном объекте, фрагменты кода, как показано ниже

            for (Account accountAggregate : accountAggregates) {
                for(Activity activity: accountAggregates.getActivities()) {
                    // dumping data into cells // generateInstructionData(accountAggregates, sheet, ++insRowCount,activity);
                }
            }
    

Указанный выше код вызывает проблемы с производительностью.

Могу ли я использовать CompletableFuture для этого в отдельном потоке, чтобы основной поток не был блокированным

Или я могу использовать JAVA stream api вместо обычного foreach , для повышения производительности

Пожалуйста, ребята, кто-нибудь может предложить подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...