Проблема обработки больших объемов данных с использованием связи апплет-сервлет
-
26-09-2019 - |
Вопрос
У меня есть апплет, который отправляет запрос к сервлету.В сервлете он использует PrintWriter для записи ответа обратно в апплет:
out.println("Field1|Field2|Field3|Field4|Field5......|Field10");
Существует около 15000 записей, поэтому out.println() выполняется около 15000 раз.
Проблема в том, что когда апплет получает ответ от сервлета, обработка записей занимает около 15 минут.Я разместил System.out.println, и обработка приостановлена примерно на отметке 5000, затем через 15 минут обработка продолжается, а затем все готово.
Кто-нибудь сталкивался с подобной проблемой?Выполнение сервлета занимает около 2 секунд.Похоже, что браузер / апплет работает слишком медленно, чтобы обрабатывать записи.
Это код апплета.Иногда это просто останавливается на первом System.out, а иногда и на втором System.out.
while ((line = in.readLine()) != null) {
System.out.println("Reading from stream....");
datavector.add(line);
System.out.println("Vector size="+datavector.size()+" Line added="+line);
}
Любые идеи приветствуются.
Спасибо.
Решение
Ваш вопрос связан с тем, что "обработка приостанавливается около 5000 записей, а затем запускается сама по себе через 15"?ИЛИ это медленная обработка в вашем апплете
Будет полезно, если вы опубликуете какой-нибудь фрагмент кода?
Другие советы
Удалите System.out.println()
строки из while
петля.Это пер Салдо звонит System.out.println()
30 000 раз.Это добавило бы многое над головой.Просто поместите один до и один после while
зациклите, если хотите.