- আমার জ্ঞান অবধি, হ্যাপ স্পেসটি কেবলমাত্র ভেরিয়েবল দ্বারা দখল করা হয়। যদি এটি সঠিক হয়, তবে বস্তু তৈরির সময় যেমন ভেরিয়েবলের জন্য স্থান বরাদ্দ করা হয় ততক্ষণ কিছুক্ষন ধরে দৌড়ানোর পরেও কেন এই ত্রুটি ঘটেছে।
এর অর্থ আপনি অবিচ্ছিন্ন সময়ের সাথে আপনার আবেদনে আরও বেশি অবজেক্ট তৈরি করছেন। নতুন বস্তু হিপ মেমরিতে সংরক্ষণ করা হবে এবং হিপ মেমরির বৃদ্ধির কারণ এটি।
গাদাতে কেবল উদাহরণ ভেরিয়েবল থাকে না। এটি সমস্ত অ-আদিম ডেটা ধরণের (অবজেক্টস) সঞ্চয় করবে। এই অবজেক্টের জীবনের সময় কম (পদ্ধতি অবরুদ্ধ) বা দীর্ঘ হতে পারে (অবজেক্টটি আপনার অ্যাপ্লিকেশনে রেফারেন্স হওয়া অবধি)
- স্তূপ স্থান বাড়ানোর কোনও উপায় আছে কি?
হ্যাঁ. আরও তথ্যের জন্য এই ওরাকল নিবন্ধটি দেখুন।
গাদা আকার নির্ধারণের জন্য দুটি পরামিতি রয়েছে:
-Xms:, যা প্রাথমিক এবং সর্বনিম্ন গাদা আকার নির্ধারণ করে
-Xmx:, যা সর্বোচ্চ স্তরের আকার নির্ধারণ করে
- আমার প্রোগ্রামে আমার কী পরিবর্তন করা উচিত যাতে এটি কম গাদা স্থান দখল করে?
এটি আপনার আবেদনের উপর নির্ভর করে।
আপনার অ্যাপ্লিকেশন প্রয়োজনীয়তা হিসাবে সর্বোচ্চ হিপ মেমরি সেট করুন
আপনার অ্যাপ্লিকেশনটিতে মেমরি ফাঁস হওয়ার কারণ হবে না
আপনি যদি আপনার অ্যাপ্লিকেশনটিতে মেমরি ফাঁস পান তবে ম্যাট , ভিজ্যুয়াল ভিএম , জকনসোল ইত্যাদি প্রোফাইলিং সরঞ্জামগুলির সাহায্যে মূল কারণটি সন্ধান করুন Once
ওরাকল নিবন্ধ থেকে গুরুত্বপূর্ণ নোট
কারণ: জাভা হিপ স্পেসটি নির্দেশ করে বিশদ বার্তা জাভা হ্যাপে বরাদ্দ করা যায়নি। এই ত্রুটিটি অগত্যা কোনও মেমরি ফাঁস বোঝায় না।
সম্ভাব্য কারণ:
- অনুপযুক্ত কনফিগারেশন (পর্যাপ্ত মেমরি বরাদ্দ নয়)
- অ্যাপ্লিকেশন অজান্তেই অবজেক্টগুলির রেফারেন্স ধারণ করে এবং এটি বস্তুগুলি আবর্জনা সংগ্রহ হতে বাধা দেয়
- অ্যাপ্লিকেশন যা চূড়ান্তকরণের অতিরিক্ত ব্যবহার করে। যদি কোনও শ্রেণীর একটি চূড়ান্ত পদ্ধতি থাকে, তবে সেই ধরণের জিনিসগুলির আবর্জনা সংগ্রহের সময় পুনরুদ্ধার করার স্থান নেই। যদি চূড়ান্তকরণের সূত্রটি চূড়ান্তকরণের সারিতে না ধরে রাখতে পারে তবে জাভা হ্যাপটি পূরণ করতে পারে এবং এই ধরণের আউটআফমিউরিওর ব্যতিক্রম ছুঁড়ে ফেলা হবে ।
অন্য একটি নোটে, আরও ভাল আবর্জনা সংগ্রহের অ্যালগরিদম ( সিএমএস বা জি 1 জিসি ) ব্যবহার করুন
জি 1 জিসি বোঝার জন্য এই প্রশ্নটি একবার দেখুন