java - মরফ - বাংলায় জাভা pdf




জাভা হিপ পরিভাষা: তরুণ, পুরানো এবং স্থায়ী প্রজন্ম? (4)

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

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

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

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

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

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

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

PermSize এবং MaxPermSize পরামিতি এখন উপেক্ষা করা হবে

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

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

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

সারাংশ চিত্রটি দেখুন:

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

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

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

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

তরুণ প্রজন্ম : এটি এমন স্থান যেখানে স্বল্প সময়ের জন্য বসবাস করা হয়েছে এবং দুটি স্থান ভাগ করা হয়েছে:

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

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

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

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

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

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

Courtesy


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

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

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

হটস্পট জাভা ভিএমের জন্য সিরিয়াল আবর্জনা সংগ্রহের মেমরি পুলগুলি নিম্নরূপ।

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

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


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





heap-memory