معالجة المشكلات بيانات كبيرة باستخدام اتصال Applet-Servlet
-
26-09-2019 - |
سؤال
لدي تطبيق تطبيق يقدم طلبًا إلى servlet. على Servlet ، يستخدم PrintWriter لكتابة الاستجابة مرة أخرى إلى Applet:
out.println("Field1|Field2|Field3|Field4|Field5......|Field10");
هناك حوالي 15000 سجل ، لذلك يتم تنفيذ Out.println () حوالي 15000 مرة.
المشكلة هي أنه عندما يحصل Applet على الاستجابة من Servlet ، يستغرق الأمر حوالي 15 دقيقة لمعالجة السجلات. لقد وضعت system.out.println's ويتم إيقاف المعالجة في حوالي 5000 ، ثم بعد 15 دقيقة تستمر في المعالجة ثم يتم ذلك.
هل واجه أي شخص مشكلة مماثلة؟ يستغرق Servlet حوالي 2 ثانية للتنفيذ. لذلك يبدو أن المتصفح/التطبيق بطيئ للغاية في معالجة السجلات.
هذا هو رمز التطبيقليت. في بعض الأحيان يتوقف فقط على النظام الأول. 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
حلقة إذا كنت تريد.