سؤال

أنا الحفاظ على تطبيق J2ME حيث وجدت طلب HTTP http://www.google.com. في تهيئة التطبيق. سألت المطور لماذا هناك طلب إلى Google. وقال إنه بهذه الطريقة الطلبات الأخرى أن يكون التطبيق يجعل أسرع.

أزلت هذا الطلب إلى Google.com وأصبح الطلبات الأخرى أبطأ.

هل يمكن لأي شخص أن يفسر لماذا حدث هذا؟ كيف يمكنني إجراء الطلب الآخر بشكل أسرع دون تقديم طلبات سابقة؟

تعديل:

تقديم طلب إلى Google في التهيئة:

  • الطلب الأول (بعد التهيئة) = 20SEC
  • تكرار الطلب الأول = 5SEC

دون تقديم طلب في التهيئة:

  • طلب الأول = 40 ثانية
  • تكرار الطلب الأول = 5SEC
هل كانت مفيدة؟

المحلول

على جهاز محمول، سيستغرق تشغيل اتصال الويب في وقت ما، وسوف يترك JVM في وقت ما، وغالبا ما يترك JVM الاتصال المفتوح لمدة تشغيل Midlet (معظم الاتصالات الحديثة مقابل الحافة، GPRS، WiFi). لذلك إذا تم إجراء اتصال على بدء تشغيل StartApp، فقد تجد الاتصال سيبقى مفتوحا ولن يحتاج جميع الاتصالات الإضافية إلى فتح اتصال، فقط أرسل البيانات. سريع جدا وأكثر موثوقية!

هذا السلوك هو منصة محددة، MIDP2 لا ينص على هذا صحيحا (لذلك قد يختلف Nokias لسامسونج، إلخ).

ربما لن يخدع الاتصال ب 127.0.0.1 JVM، مما قد يقرر أنه لا يحتاج إلى اتصال مفتوح GPRS لذلك. مرة أخرى منصة محددة.

جوامع

نصائح أخرى

... ربما يتم تهيئة الطلب الأول طبقة الشبكة (*) في الجهاز وربما أيضا JVM.

أنا متأكد من أنه يعمل مع www.microsoft.com أيضا :-)

*) أظن أن هذا يعتمد على ما الجهاز الذي تقوم بتشغيله. ليس لدي أي فكرة عما يحدث، ولكن قد يكون هناك أي شيء. على سبيل المثال: بدء تشغيل جهاز الراديو، قم بإعداد جلسة مع مشغل الشبكة، وتحميل وفئات بدء التشغيل في JVM.

حاول الاتصال ب 127.0.0.1 بدلا من Google ومعرفة ما إذا كان ذلك يجعل المحاولات لاحقا أسرع.

إذا كان التطبيق يقوم بالكثير من الأدواريات التي تستغرق بعض الوقت قبل القيام بمحاولة اتصال حقيقية الأولى، فيمكنك تشغيل مؤشر ترابط جديد مبكرا في محاولة اتصال. ربما هذا سوف يقلل من إجمالي وقت الانتظار.

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