アプレット、サーブレット通信を使用して大規模なデータを処理する問題
-
26-09-2019 - |
質問
私は、サーブレットへの要求を行うアプレットを持っています。サーブレット上では、アプレットへの応答の背中を書くためにPrintWriterを使用しています:
out.println("Field1|Field2|Field3|Field4|Field5......|Field10");
out.printlnを()が15000回程度実行されますので、、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
の行を削除します。あなた30,000回System.out.println()
を呼び出すsaldoごとです。これは、オーバーヘッドの非常にを追加します。ちょうどあなたがしたい場合while
ループの前後1つずつを配置します。
所属していません StackOverflow