معالجة المشكلات بيانات كبيرة باستخدام اتصال Applet-Servlet

StackOverflow https://stackoverflow.com/questions/3017826

سؤال

لدي تطبيق تطبيق يقدم طلبًا إلى 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 حلقة إذا كنت تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top