Замедление работы при чтении каждого следующего файла

91
27 апреля 2021, 19:40

Есть код, который читает данные из CSV файла, используя библиотеку apache csv commons. Метод, который загружает данные из файла вызывается дважды, ему в параметры передается путь к файлу. Имеет место странная ситуация - обработка каждого следующего файла занимает намного больше времени чем предидущего. Причем, даже если вызвать этот метод два раза подряд на одном и том же файле, второй раз все равно будет намного медленее. Намного медленее выполняется та часть, которая проходит по столбцам CSV таблицы. Причем эта часть вообще не взаимодействует с внешним контекстом(полями класса, глобальными переменными и т.д.).

Структура кода вот такая

Reader in = new BufferedReader(new FileReader(csvFile.toFile()), 1048576 * 10);
CSVParser csvParser = new CSVParser(in, CSVFormat.newFormat('|'));
 for (CSVRecord row : csvParser) {
        Iterator<String> cellIterator = row.iterator();
        while (cellIterator.hasNext()) {
          String cell = cellIterator.next();
          if (cell == null) {
            break;
          }
          if (emptyCounter > 50) {
            break;
          }
          // HERE CELL VALUE IS PROCESSED
        }
      }
csvParser.close();

В чем может быть проблема?

READ ALSO
Anroid. Fragment. Проблема с заменой фрагмента

Anroid. Fragment. Проблема с заменой фрагмента

в приложении есть ViewPager c фрагментами и в каждом из них есть список RecyclerViewпри нажатии на каждый item списка создается новый фрагмент методом...

76
пинг с помощью InetAddress

пинг с помощью InetAddress

Хочу сделать программу простую, которая пингует сервераРаботает так: InetAddress

100
ошибка в procfile heroku

ошибка в procfile heroku

после запуска приложения на heroku (telegram бот без использования спринга, собираемый с помощью maven) где то через минуту работы оно крашитсяЯ так...

98
Консоль показывает разную длину одного массива в разных местах

Консоль показывает разную длину одного массива в разных местах

Как это возможно и как от этого избавиться? Использую состояние React

85