سؤال

لقد تعلمت مؤخرا عن السيناريوهات التي تتطلب الاحماء من التطبيق (مع متطلبات الإنتاجية العالية) قبل أن تبدأ في تقديم الطلبات الحقيقية. كان المنطق وراء ذلك هو السماح ل JIT للقيام بسحر الأداء الخاص به!

هل هذه قاعدة لتطبيقات Java أو هل تم القيام بذلك عموما لتطبيقات الذاكرة الثقيلة (البصمة)؟

هل كانت مفيدة؟

المحلول

إذا كنت تتحدث عن WebApp / WebApp / Website مرتفع، فإن JIT هي مشكلة بسيطة للغاية. المشكلة الأكبر هي الاحماء (populating) جميع طبقات ذاكرة التخزين المؤقت التي ستحتاج إليها. على سبيل المثال مناطق EHCACHE التي يتم ملؤها من السبات. وبعد وذلك لأن العمليات ذات الصلة IO هي أوامر ذات حجم أبطأ من أي شيء يحدث داخل وحدة المعالجة المركزية (أي ما لم تكن حساب الكسور :)

نصائح أخرى

السؤال هو، متى تريد الخروج من طريقك لفعل هذا؟

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

إذا قمت بإخراج WebApp، واختبر النشر قبل توجيه موازن التحميل الخاص بك إليها، فأنت قد تحسنت بالفعل كأجيلي.

بالإضافة إلى إجابة شيروفيم, ، أستطيع أن أفكر في عدد قليل من القضايا الأخرى التي تتطلب الاحماء:

  • كائنات إنشاء مثيل (تحميل كسول، المفردات وما إلى ذلك)؛
  • تخصيص كومة (إذا كان لديك Xms أصغر من الخاص بك Xmx).

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

معظم ما سبق (سكان ذاكرة التخزين المؤقت، تهيئة الكائن) ليست خاصة بجافا.

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