বেশিরভাগ সময়, এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিতে দেওয়া জাভা হিপ সর্বোচ্চ 12 থেকে 16 জিবি আদর্শ আকারের চেয়ে বড়। নেটবিন্স প্রোফাইলারকে এই বড় জাভা অ্যাপগুলিতে সরাসরি কাজ করা আমার পক্ষে কঠিন হয়ে পড়েছে।
তবে সাধারণত এটির প্রয়োজন হয় না। আপনি "লাইভ" হিপ ডাম্প নিতে jdk সহ যে jmap ইউটিলিটিটি ব্যবহার করতে পারেন তা হ'ল জিম্যাপটি GC চালানোর পরে হিপটি ডাম্প করবে। অ্যাপ্লিকেশনটিতে কিছু অপারেশন করুন, অপারেশনটি শেষ না হওয়া পর্যন্ত অপেক্ষা করুন, তারপরে অন্য "লাইভ" হিপ ডাম্প নিন। হিপডাম্পগুলি লোড করতে, হিস্টোগ্রামের উপর বাছাই করতে, Eclipse MAT এর মতো সরঞ্জামগুলি ব্যবহার করুন দেখুন কোন জিনিসগুলি বৃদ্ধি পেয়েছে বা কোনটি সর্বোচ্চ, এটি কোনও ধারণা দেয়।
su proceeuser
/bin/jmap -dump:live,format=b,file=/tmp/2930javaheap.hrpof 2930(pid of process)
এই পদ্ধতির সাথে কেবল একটি সমস্যা রয়েছে; লাইভ অপশন সহ বিশাল আকারের হিপ ডাম্পগুলি বিকাশের কোলে স্থানান্তরিত করতে খুব বড় হতে পারে এবং খোলার জন্য পর্যাপ্ত মেমরি / র্যামযুক্ত একটি মেশিনের প্রয়োজন হতে পারে।
ক্লাস হিস্টগ্রাম ছবিতে আসে যেখানে। আপনি jmap সরঞ্জাম দিয়ে একটি লাইভ ক্লাসের হিস্টোগ্রাম ডাম্প করতে পারেন। এটি কেবল মেমরির ব্যবহারের ক্লাসের হিস্টগ্রাম দেবে as সাধারণত এটিতে রেফারেন্সটি শৃঙ্খলাবদ্ধ করার তথ্য থাকবে না। উদাহরণস্বরূপ, এটি শীর্ষে চর অ্যারে রাখতে পারে। এবং স্ট্রিং ক্লাস নীচে কোথাও। আপনাকে সংযোগটি নিজেই আঁকতে হবে।
jdk/jdk1.6.0_38/bin/jmap -histo:live 60030 > /tmp/60030istolive1330.txt
দুটি হিপ ডাম্প নেওয়ার পরিবর্তে, উপরে বর্ণিত মত দুটি শ্রেণীর হিস্টোগ্রাম নিন; তারপরে ক্লাসের হিস্টোগ্রামগুলি তুলনা করুন এবং যে ক্লাসগুলি বাড়ছে তা দেখুন। আপনি নিজের অ্যাপ্লিকেশন ক্লাসের সাথে জাভা ক্লাসগুলি সম্পর্কিত করতে পারেন কিনা তা দেখুন। এটি একটি খুব ভাল ইঙ্গিত দেবে। এখানে একটি অজগর স্ক্রিপ্ট যা আপনাকে দুটি জ্যাম্যাপের হিস্টোগ্রাম ডাম্পের তুলনা করতে সহায়তা করতে পারে। histogramparser.py
অবশেষে জ্যাকনলস এবং ভিজুয়ালভিমের মতো সরঞ্জামগুলি সময়ের সাথে সাথে স্মৃতিশক্তি বৃদ্ধি পেতে এবং মেমরি ফুটো আছে কিনা তা দেখার জন্য প্রয়োজনীয়। অবশেষে কখনও কখনও আপনার সমস্যা মেমরি ফুটো হতে পারে না তবে উচ্চ মেমরির ব্যবহার হতে পারে this এর জন্য জিসি লগিং সক্ষম করুন; জি 1 জিসির মতো আরও উন্নত এবং নতুন কমপ্যাকটিং জিসি ব্যবহার করুন; এবং আপনি জিসিটের মতো জেডিকে সরঞ্জামগুলি ব্যবহার করতে পারেন জিসিটি আচরণটি সরাসরি দেখতে
jstat -gccause pid <optional time interval>
-জট, জ্যাম্যাপ, ফুল জিসি, হুমংসাস বরাদ্দ, জি 1 জিসির জন্য গুগলে অন্যান্য রেফারেন্স