JVM 'java.lang.OutOfMemoryError: GC ওভারহেড সীমা ছাড়িয়ে গেছে' নিক্ষেপ করার সময়টি কী? আমি জানি আপনি GCTimeLimit এবং GCHeapFreeLimit পরামিতিগুলির সাথে 98% এবং 2% নিয়ন্ত্রণ করতে পারবেন তবে নমুনার সময়টি কী?
উত্তর:
থেকে জাভা SE 6 হটস্পট [TM] ভার্চুয়াল মেশিন বর্জ্য সংগ্রহ টিউনিং
পরবর্তী
অতিরিক্ত জিসি সময় এবং আউট অফ মেমরিরির
যদি আবর্জনা সংগ্রহ করতে খুব বেশি সময় ব্যয় করা হয় তবে সমকালীন সংগ্রাহক একটি আউট অফ মেমরিরির ফেলে দেবেন: যদি মোট সময়ের 98% এরও বেশি সময় আবর্জনা সংগ্রহ করতে ব্যয় করা হয় এবং 2% এরও বেশি হিপ পুনরুদ্ধার করা হয় তবে একটি আউটঅফমিউরিওর ফেলে দেওয়া হবে। এই বৈশিষ্ট্যটি খুব কম বা কোনও অগ্রগতির সময় অ্যাপ্লিকেশনগুলিকে সময়কালের জন্য চালানো থেকে বিরত রাখতে ডিজাইন করা হয়েছে কারণ হিপ খুব ছোট too যদি প্রয়োজন হয় তবে এই বৈশিষ্ট্যটি -XX বিকল্পটি যোগ করে অক্ষম করা যেতে পারে: -কমান্ড লাইনে USGCOverheadLimit ব্যবহার করুন।
পলিসি সমান্তরাল সংগ্রহে যেমন একই, সমবর্তী সংগ্রহগুলি সম্পাদন করতে ব্যয় করা সময় বাদে 98% সময়সীমা হিসাবে গণনা করা হয় না। অন্য কথায়, অ্যাপ্লিকেশনকে অতিরিক্ত জিসি সময় গণনা বন্ধ করার সময় কেবল সংগ্রহগুলি সঞ্চালিত হয়। এই জাতীয় সংগ্রহগুলি সাধারণত একযোগে মোড ব্যর্থতা বা স্পষ্ট সংগ্রহের অনুরোধের কারণে হয় (যেমন, সিস্টেম.gc () তে একটি কল)।
আরও নিচে একটি উত্তরণের সাথে একত্রে
স্পষ্ট আবর্জনা সংগ্রহের সবচেয়ে সাধারণ ব্যবহারগুলির মধ্যে একটি আরএমআই বিতরণকৃত আবর্জনা সংগ্রহ (ডিজি) এর সাথে ঘটে। আরএমআই ব্যবহার করে অ্যাপ্লিকেশনগুলি অন্যান্য ভার্চুয়াল মেশিনের বস্তুগুলিকে বোঝায়। মাঝে মাঝে স্থানীয় স্তূপ সংগ্রহ না করে এই বিতরণ অ্যাপ্লিকেশনগুলিতে আবর্জনা সংগ্রহ করা যায় না, তাই আরএমআই পর্যায়ক্রমে সম্পূর্ণ সংগ্রহের জন্য বাধ্য করে। এই সংগ্রহগুলির ফ্রিকোয়েন্সি বৈশিষ্ট্য সহ নিয়ন্ত্রণ করা যেতে পারে। উদাহরণ স্বরূপ,
java -Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
প্রতি মিনিটে একবারের ডিফল্ট হারের পরিবর্তে প্রতি ঘন্টা একবার সুস্পষ্ট সংগ্রহ নির্দিষ্ট করে। যাইহোক, এর ফলে কিছু বিষয়বস্তু পুনরুদ্ধার করতে আরও বেশি সময় নিতে পারে। ডিজিসি ক্রিয়াকলাপের সময়োপযোগীকরণের জন্য যদি কোনও উচ্চতর আবদ্ধের ইচ্ছা না থাকে তবে এই বৈশিষ্ট্যগুলিকে সুস্পষ্ট সংগ্রহের মধ্যে কার্যকরভাবে অসীম করার জন্য সময়টিকে দীর্ঘ হিসাবে তৈরি করা যেতে পারে MA MAX_VALUE UE
98% নির্ধারণের জন্য মূল্যায়ন সময়টি এক মিনিট দীর্ঘ বলে বোঝায় বলে মনে হচ্ছে, তবে এটি সঠিক সংজ্ঞায়িত করে সূর্যের জেভিএম-তে কনফিগারযোগ্য হতে পারে।
অবশ্যই, অন্যান্য ব্যাখ্যা সম্ভব।
-XX:+DisableExplicitGC
করে দিলেও এটি আরএমআই সম্পর্কিত কনফিগারেশনকে প্রভাবিত করবে না এবং সিস্টেম প্যারামিটারের সাথে ফ্রিকোয়েন্সি সেটটিতে জিসি আবেদন করবে-Dsun.rmi.dgc.server.gcInterval
-Dsun.rmi.dgc.server.gcInterval
সম্পত্তিটি জাভা ১.২ এর পরে রয়েছে।