Проблема обработки больших данных с использованием связи Applet-Servlet - PullRequest
1 голос
/ 10 июня 2010

У меня есть апплет, который отправляет запрос сервлету.В сервлете он использует 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);
}

Любые идеи приветствуются.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 июня 2010

Удалите строки System.out.println() из цикла while. Ты за один сальдо звонишь System.out.println() 30000 раз. Это добавило бы много накладных расходов. Просто поместите один до и один после цикла while, если хотите.

0 голосов
/ 10 июня 2010

Ваш вопрос связан с "приостановкой обработки около 5000 записей и последующим запуском самостоятельно после 15"? ИЛИ на вашем апплете идет медленная обработка

Будет ли полезно, если вы напишете фрагмент кода?

...