[java] مصطلحات جافا سكريبت: الشباب ، الأجيال القديمة والدائمة؟


3 Answers

تنقسم الكومة إلى أجيال شابة وأقدم على النحو التالي:

جيل الشباب : هو المكان الذي عاش فيه لفترة قصيرة وينقسم إلى مكانين:

  • Eden Space : عند إنشاء كائن باستخدام ذاكرة كلمات رئيسية جديدة مخصصة في هذه المساحة.
  • Survivor Space : هذا هو المجمع الذي يحتوي على كائنات نجت بعد جمع القمامة من مساحة عدن.

الجيل القديم : يحتوي هذا المجمع أساسًا على مساحة محجوزة و افتراضية (محجوزة) وسيحتفظ بتلك الأشياء التي نجت بعد جمع القمامة من جيل الشباب.

  • الفضاء المحكم: يحتوي هذا التجمع من الذاكرة على كائنات نجت بعد جمع القمامة عدة تعني الكائن الذي نجا بعد جمع القمامة من الفضاء الناجي.

الجيل الدائم: تجمع الذاكرة هذا كما يقول الاسم يحتوي أيضًا على بيانات تعريف واصف الطبقة الدائمة ، لذا فإن مساحة PermGen محفوظة دائمًا للفئات وتلك المرتبطة بالصفوف على سبيل المثال أعضاء ثابتين.

تحديث Java8: يتم استبدال PermGen مع Metaspace التي هي مشابهة جدا.
الفرق الرئيسي هو أن إعادة الترتيب Metasace بشكل حيوي أي ، ويمكن أن تتوسع في وقت التشغيل.
مساحة Java Metaspace: غير محدود (افتراضي)

رمز ذاكرة التخزين المؤقت (ظاهري أو محجوز): إذا كنت تستخدم HotSpot Java VM ، فهذا يتضمن منطقة التخزين المؤقت للشفرة التي تحتوي على ذاكرة سيتم استخدامها لتجميع وتخزين التعليمة البرمجية الأصلية.

Courtesy

Question

أحاول أن أفهم كيف مفاهيم الشباب والأجيال القديمة والدائمة في مصطلحات جافا ، وبالتحديد على التفاعلات بين الأجيال الثلاثة.

أسئلتي هي:

  • ما هو الجيل الشاب؟
  • ما هو الجيل القديم؟
  • ما هو الجيل الدائم؟
  • كيف تتفاعل الأجيال الثلاثة / ترتبط ببعضها البعض؟



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




يتم تنظيم الذاكرة في SunHotSpot JVM إلى ثلاثة أجيال: جيل الشباب ، الجيل القديم والجيل الدائم.

  • جيل الشباب: يتم تخصيص الكائنات المنشأة حديثا للجنرال الشاب.
  • الجيل القديم: إذا طلب الكائن الجديد مساحة أكبر للكرة ، فسيتم تخصيصه مباشرة في الجيل القديم. أيضا الكائنات التي نجت من عدد قليل من الدورات GC يحصل على ترقية إلى قديم العمر أي منزل الأجسام طويلة العمر في الجيل القديم.
  • الجيل الدائم: يحمل الجيل الدائم الأشياء التي يجدها JVM مريحة لإدارة جامع القمامة ، مثل الكائنات التي تصف الطبقات والأساليب ، بالإضافة إلى الفئات والطرق نفسها.

لمعلوماتك: لا يعتبر الجنرال الدائم جزءًا من كومة جافا.

كيف تتفاعل الأجيال الثلاثة / ترتبط ببعضها البعض؟ يتم أولاً تخصيص الكائنات (باستثناء الكبيرة منها) للجيل الشاب. إذا بقي كائن على قيد الحياة بعد x لا. من دورات جمع القمامة فإنه يحصل على ترقية إلى الجنرال القديم / مثبت. ومن هنا يمكننا القول أن الجيل الشاب يحتوي على الأجسام القصيرة العمر بينما يحتوي الجين القديم على الكائنات التي لها عمر طويل. لا يتفاعل الجين الدائم مع الأجيال الأخرى.




بافتراض أنك تتحدث عن Sun JDK / OpenJDK ، راجع الصفحة على موقع OpenJDK على إدارة التخزين . هناك نوعان من الروابط لمزيد من المعلومات في الأسفل.




Related