জাভা হিপ পরিভাষা: তরুণ, বৃদ্ধ এবং স্থায়ী প্রজন্মের?


318

আমি জাভা হিপ পরিভাষায় যুবক , পুরাতনস্থায়ী প্রজন্মের ধারণাগুলি কী তা বোঝার চেষ্টা করছি এবং আরও তিনটি প্রজন্মের মধ্যে বিশেষত মিথস্ক্রিয়া।

আমার প্রশ্নগুলি হ'ল:

  • তরুণ প্রজন্ম কী?
  • পুরাতন প্রজন্ম কী?
  • স্থায়ী প্রজন্ম কী?
  • তিন প্রজন্ম কীভাবে একে অপরের সাথে যোগাযোগ করে / সম্পর্কিত হয়?

ধরে নিই যে আপনি সান জেডিকে / ওপেনজেডিকে নিয়ে কথা বলছেন, স্টোরেজ ম্যানেজমেন্টের ওপেনজেডিকে ওয়েবসাইটে পৃষ্ঠাটি দেখুন । নীচে আরও তথ্যের জন্য বেশ কয়েকটি লিঙ্ক রয়েছে।
নিকোলাস রিলি

1
এই প্রশ্নের সাথে "সম্পর্কিত মেয়াদী প্রজন্ম" সম্পর্কিত
gstackoverflow

উত্তর:


304

এটি একটি সাধারণ ভুল বোঝাবুঝির মতো বলে মনে হচ্ছে। ওরাকলের জেভিএম-তে স্থায়ী প্রজন্ম হ'ল অংশ নয়। এটি শ্রেণি সংজ্ঞা এবং সম্পর্কিত ডেটার জন্য পৃথক স্থান। জাভা 6 এবং এর আগে, ইন্টার্নযুক্ত স্ট্রিংগুলি স্থায়ী জেনারেশনেও সংরক্ষণ করা হয়েছিল। জাভা 7-এ, ইন্টার্নড স্ট্রিংগুলি মূল অবজেক্টের হিপে সংরক্ষণ করা হয়।

স্থায়ী প্রজন্মের জন্য এখানে একটি ভাল পোস্ট ।

আমি জে কনসোলের ওরাকলের গাইডের প্রতিটি জায়গার জন্য দেওয়া বিবরণগুলি পছন্দ করি :

হটস্পট জাভা ভিএম-এর জন্য সিরিয়াল আবর্জনা সংগ্রহের জন্য মেমরি পুলগুলি নিম্নলিখিত are

  • ইডেন স্পেস (হিপ): যে পুলটি থেকে প্রাথমিকভাবে বেশিরভাগ অবজেক্টের জন্য মেমরি বরাদ্দ করা হয়।
  • বেঁচে থাকার স্থান (হিপ): পুলটি ইডেনের জায়গার আবর্জনা সংগ্রহ করে বেঁচে থাকা অবজেক্টসযুক্ত পুল।
  • টেনুর জেনারেশন (হিপ): পুলটি বেঁচে থাকার জায়গাগুলিতে কিছু সময়ের জন্য বিদ্যমান অবজেক্টগুলি সমেত।
  • স্থায়ী জেনারেশন (নন-হ্যাপ): পুলটি ভার্চুয়াল মেশিনের সমস্ত প্রতিচ্ছবিযুক্ত ডেটা যেমন শ্রেণি এবং পদ্ধতি অবজেক্টগুলিকে ধারণ করে। শ্রেণি ডেটা ভাগ করে নেওয়া ব্যবহার করে এমন জাভা ভিএম সহ, এই প্রজন্মটি কেবল পঠনযোগ্য এবং পঠন-পাঠের ক্ষেত্রে বিভক্ত।
  • কোড ক্যাশে (নন-হিপ): হটস্পট জাভা ভিএম-তে একটি কোড ক্যাশেও রয়েছে, এতে মেমরি রয়েছে যা দেশীয় কোডের সংকলন এবং সংরক্ষণের জন্য ব্যবহৃত হয়।

জাভা প্রজন্মের আবর্জনা সংগ্রহ ব্যবহার করে। এর অর্থ হ'ল যদি আপনার কোনও অবজেক্ট ফু (যা কিছু শ্রেণীর উদাহরণ) থাকে তবে এটি যত বেশি আবর্জনা সংগ্রহের ইভেন্টগুলি টিকে থাকে (যদি এখনও এর উল্লেখ থাকে তবে) এটি আরও প্রচারিত হয়। এটি তরুণ প্রজন্মের মধ্যে শুরু হয় (যা নিজেই একাধিক স্পেসে বিভক্ত - ইডেন এবং বেঁচে থাকা) এবং দীর্ঘকাল বেঁচে থাকলে অবশেষে টেনারড জেনারেশনে শেষ হবে।


2
আমি বিশ্বাস করি যে জাভা 7 হিসাবে, স্ট্রিংগুলি আর স্থায়ী প্রজন্মের অভ্যন্তরীণ নয়।
টিম গুডম্যান

আপনি ঠিকই বলেছেন, আমি অবাক হয়েছি যে এটি উল্লেখ করার আগে এতদিন বেঁচে গিয়েছিল। তারপরে জাভাতে 8 টি স্থায়ী প্রজন্ম मेटाস্পেস দ্বারা প্রতিস্থাপিত হবে (যদিও এটি সত্য যে আমি কতটা আলাদা তা ডিফল্টরূপে আনবাউন্ড করা ছাড়া অন্য কি হবে তা নিশ্চিত)
জোশুয়া ম্যাককিনন

9
জোশুয়া - "পুরানো" "টেনারড" এর সমার্থক এবং "বেঁচে থাকা" এর সাথে "নতুন" সমার্থক?
জোদা

1
জাভা 8 এর আগে
পারম

2
আপনি যদি এখনও কোনও উত্তরের অপেক্ষায় থাকেন তবে হ্যাঁ আপনি ঠিকই @ জোয়াথা। এই লিঙ্কটি দেখুন: codeahoy.com/2017/08/06/basics-of-java-garbage-colલેક્શન
রিসিপিনেঙ্ক

197

নিম্নরূপে গাদা তরুণ এবং পুরানো প্রজন্মের মধ্যে বিভক্ত:

ইয়ং জেনারেশন : এটি এমন এক স্থান যেখানে স্বল্প সময়ের জন্য বেঁচে ছিল এবং দুটি স্পেসে বিভক্ত ছিল:

  • ইডেন স্পেস : যখন এই স্পেসে বরাদ্দ করা নতুন কীওয়ার্ড মেমরি ব্যবহার করে অবজেক্ট তৈরি করা হয়।
  • বেঁচে থাকার স্থান : এটি এমন পুল যা ইডেন স্পেস থেকে জাভা আবর্জনা সংগ্রহের পরে বেঁচে আছে এমন জিনিসগুলিতে রয়েছে।

ওল্ড জেনারেশন : এই পুলটিতে মূলত টেনারড এবং ভার্চুয়াল (সংরক্ষিত) স্থান রয়েছে এবং যুব জেনারেশন থেকে আবর্জনা সংগ্রহের পরে বেঁচে থাকা সেই জিনিসগুলি ধরে রাখা হবে।

  • টেন্যুরড স্পেস: এই মেমরি পুলে এমন অবজেক্ট থাকে যা একাধিক আবর্জনা সংগ্রহের পরে বেঁচে যায় অর্থ বস্তু যা বেঁচে থাকার স্থান থেকে আবর্জনা সংগ্রহের পরে বেঁচে যায়।

স্থায়ী জেনারেশন: নাম হিসাবে এই মেমরি পুলটিতে স্থায়ী শ্রেণীর মেটাডেটা এবং বর্ণনাকারীদের তথ্য রয়েছে যাতে পারমজেন স্থান সর্বদা ক্লাসের জন্য সংরক্ষিত থাকে এবং ক্লাসের সাথে যেমন আবদ্ধ থাকে উদাহরণস্বরূপ সদস্যদের জন্য।

জাভা 8 আপডেট: পার্মগেনকে মেটাস্পেসের সাথে প্রতিস্থাপন করা হয়েছে যা খুব মিল।
মূল পার্থক্য হ'ল মেটাস্পেস গতিশীলরূপে পুনরায় আকার দেয়, এটি রানটাইমে প্রসারিত হতে পারে।
জাভা মেটাস্পেস স্পেস: আনবাউন্ডেড (ডিফল্ট)

কোড ক্যাশে (ভার্চুয়াল বা সংরক্ষিত): আপনি যদি হটস্পট জাভা ভিএম ব্যবহার করে থাকেন তবে এতে কোড ক্যাশে অঞ্চল অন্তর্ভুক্ত রয়েছে যা মেমরি ধারণ করে যা স্থানীয় কোডের সংকলন এবং সংরক্ষণের জন্য ব্যবহৃত হবে।

এখানে চিত্র বর্ণনা লিখুন

শ্লীলতা


@ প্রমরাজ বলতে কী বোঝায় এর মেটাস্পেস পুনঃ আকার আকার পরিবর্তনশীল অর্থাৎ এটি রানটাইমে প্রসারিত হতে পারে। ? কেবলমাত্র পার্থক্যটি যে ডিফল্টরূপে এটির সীমানা নেই?
gstackoverflow

1
চমৎকার..আমি আমি জানি পদ্ধতি চিত্র, নেটিস্ট্যাক এবং রানটাইম ধ্রুবক পুলটি এই ছবিতে কোথায় রয়েছে? এবং সেই অনুসারে তারা কী ধরে?

কোড ক্যাশে যদি স্থানীয় পদ্ধতি কোডের জন্য ব্যবহার করা হয়, তবে দেশীয় পদ্ধতি স্ট্যাক (প্রতিটি থ্রেডের একটি থাকবে) কী থাকবে?

49

তরুণ প্রজন্ম কী?

তরুণ প্রজন্ম যেখানে সব নতুন বস্তু বরাদ্দ ও বুড়া হয়। তরুণ প্রজন্ম যখন পূর্ণ হয়, তখন এটি সামান্য আবর্জনা সংগ্রহের কারণ হয়। মৃত বস্তুতে পূর্ণ একটি তরুণ প্রজন্ম খুব দ্রুত সংগ্রহ করা হয়। কিছু বেঁচে থাকা বস্তুগুলি বয়স্ক এবং অবশেষে পুরানো প্রজন্মের দিকে চলে যায়।

পুরাতন প্রজন্ম কী?

প্রাচীন জেনারেশন দীর্ঘ জীবিত বস্তু সংরক্ষণ করতে ব্যবহৃত হয়। সাধারণত, তরুণ প্রজন্মের অবজেক্টের জন্য একটি থ্রেশহোল্ড সেট করা হয় এবং যখন সেই বয়সটি পূরণ করা হয়, তখন বস্তুটি পুরানো প্রজন্মের দিকে চলে যায়। শেষ পর্যন্ত পুরাতন প্রজন্মকে সংগ্রহ করা দরকার। এই ইভেন্টটিকে একটি বড় আবর্জনা সংগ্রহ বলা হয়

স্থায়ী প্রজন্ম কী?

স্থায়ী প্রজন্ম ধারণ করে মেটাডেটা JVM দ্বারা প্রয়োজনীয় শ্রেণীর ও পদ্ধতি অ্যাপ্লিকেশনে ব্যবহৃত বর্ণনা করতে। স্থায়ী প্রজন্মটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত ক্লাসের উপর ভিত্তি করে রানটাইমে জেভিএম দ্বারা পপুলিটেড হয়।

জাভা 8 প্রকাশের পর থেকে পেরমগেনকে মেটাস্পেসের সাথে প্রতিস্থাপন করা হয়েছে।

পার্মসাইজ এবং ম্যাক্স্পার্মসাইজ প্যারামিটারগুলি এখন উপেক্ষা করা হবে

তিন প্রজন্ম কীভাবে একে অপরের সাথে যোগাযোগ করে / সম্পর্কিত হয়?

এখানে চিত্র বর্ণনা লিখুন

চিত্র উত্স এবং ওরাকল টেকনিকেট টিউটোরিয়াল নিবন্ধ: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

" সাধারণ বর্জ্য সংগ্রহ প্রক্রিয়া " উপরের প্রবন্ধে অনেক ডায়াগ্রামে সঙ্গে তাদের মধ্যে পারস্পরিক ক্রিয়ার ব্যাখ্যা করে।

সংক্ষিপ্ত চিত্রটি দেখুন:

এখানে চিত্র বর্ণনা লিখুন


চমৎকার..আমি আমি জানি পদ্ধতি চিত্র, নেটিস্ট্যাক এবং রানটাইম ধ্রুবক পুলটি এই ছবিতে কোথায় রয়েছে? এবং সেই অনুসারে তারা কী ধরে?

পড়ুন docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html আরো বিস্তারিত জানার জন্য। ভার্চুয়াল মেশিন স্টার্ট-আপে পদ্ধতিটির ক্ষেত্রটি তৈরি করা হয়। যদিও পদ্ধতি ক্ষেত্রটি যুক্তিযুক্তভাবে গাদা অংশের অংশ, সাধারণ বাস্তবায়নগুলি আবর্জনা সংগ্রহ বা সংহত না করা বেছে নিতে পারে। প্রতিটি রান-টাইম ধ্রুবক পুলটি জাভা ভার্চুয়াল মেশিনের পদ্ধতি অঞ্চল থেকে বরাদ্দ করা হয়
রবীন্দ্র বাবু

আপনি কি নিশ্চিত ... ive পড়েন যে এর পার্জেন স্পেসের অংশ (যা গাদা নয়)? journaldev.com/2856/...

ওরাকল ডকুমেন্টেশন আরও খাঁটি
রবীন্দ্র বাবু

টাইম ইউনিটগুলিতে তরুণ প্রজন্মের অবজেক্টের জন্য কি থ্রোসোল্ড সেট করা আছে (যেমন এমএস)? নাকি জিসি রাউন্ড?
খুব উদ্দেশ্যমূলক

16

জাভা ভার্চুয়াল মেশিনটি তিনটি প্রজন্মের মধ্যে সংগঠিত: একটি তরুণ প্রজন্ম, একটি পুরানো প্রজন্ম এবং একটি স্থায়ী প্রজন্ম। বেশিরভাগ অবজেক্ট প্রাথমিকভাবে তরুণ প্রজন্মের মধ্যে বরাদ্দ করা হয়। পুরাতন প্রজন্মের মধ্যে এমন কিছু বস্তু রয়েছে যা বেশ কয়েকটি সংখ্যক তরুণ প্রজন্মের সংগ্রহ থেকে বেঁচে গেছে, পাশাপাশি কিছু বড় বড় অবজেক্টস যা পুরানো প্রজন্মের মধ্যে সরাসরি বরাদ্দ থাকতে পারে। স্থায়ী প্রজন্মের এমন জিনিসগুলি রয়েছে যা জেভিএম আবর্জনা সংগ্রাহককে পরিচালনা করতে সুবিধাজনক বলে মনে করে, যেমন শ্রেণি এবং পদ্ধতিগুলি বর্ণনা করে এমন সামগ্রী, পাশাপাশি শ্রেণি এবং পদ্ধতিগুলি নিজেরাই।


1

সানহটস্পট জেভিএম-এ স্মৃতি তিন প্রজন্মের মধ্যে সংগঠিত করা হয়েছে: তরুণ প্রজন্ম, পুরানো প্রজন্ম এবং স্থায়ী প্রজন্ম।

  • ইয়ং জেনারেশন: সদ্য নির্মিত বস্তুগুলি তরুণ জেনারে বরাদ্দ করা হয়েছে।
  • পুরানো জেনারেশন: নতুন বস্তু যদি বৃহত্তর স্তূপ স্থানের জন্য অনুরোধ করে তবে এটি সরাসরি পুরানো জিনে বরাদ্দ হয়ে যায়। এছাড়াও কয়েকটি জিসি চক্র বেঁচে থাকা অবজেক্টগুলি পুরানো জেনে উন্নীত হয় অর্থাৎ পুরানো জিনে দীর্ঘকালীন অবজেক্টের বাড়িতে।
  • স্থায়ী জেনারেশন: স্থায়ী প্রজন্মের এমন জিনিসপত্র রয়েছে যা জেভিএম আবর্জনা সংগ্রাহককে পরিচালনা করতে সুবিধাজনক বলে মনে করে, যেমন শ্রেণি এবং পদ্ধতিগুলি বর্ণনা করে এমন বিষয়বস্তু পাশাপাশি ক্লাস এবং পদ্ধতিগুলি নিজেরাই।

এফওয়াইআই: স্থায়ী জিন জাভা হিপগুলির একটি অংশ হিসাবে বিবেচনা করা হয় না।

তিন প্রজন্ম কীভাবে একে অপরের সাথে যোগাযোগ করে / সম্পর্কিত হয়? অবজেক্টস (বড়গুলি বাদে) প্রথমে তরুণ প্রজন্মকে বরাদ্দ দেওয়া হয়। কোনও বস্তু যদি x নং এর পরেও বেঁচে থাকে। আবর্জনা সংগ্রহের চক্রের এটি পুরানো / টেনিউড জিনে উন্নীত হয়। তাই আমরা বলতে পারি যে তরুণ জিনটিতে স্বল্প জীবিত বস্তু রয়েছে তবে পুরানো জিনটিতে দীর্ঘায়িত অবজেক্ট থাকে। স্থায়ী জেনার অন্য দুটি প্রজন্মের সাথে যোগাযোগ করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.