উত্তর:
যুক্তি ব্যবহার করুন -Xms<memory>
-Xmx<memory>
। বাইটসের মেগস এবং জিগস নির্দেশ করার জন্য সংখ্যাগুলি পরে M
বা ব্যবহার করুন G
after -Xms
সর্বনিম্ন এবং -Xmx
সর্বাধিক নির্দেশ করে ।
-Xmx524M
এবং প্রক্রিয়াটি 1.2 গিগাবাইট র্যাম নেয়। (?)
স্ট্যাক ফাঁস মেমরি সম্পর্কে আপনার চিন্তা করার দরকার নেই (এটি অত্যন্ত অস্বাভাবিক)। কেবলমাত্র যখন আপনি স্ট্যাকটি নিয়ন্ত্রণের বাইরে চলে যেতে পারেন তা হল অসীম (বা সত্যই গভীর) পুনরাবৃত্তি।
এটি কেবল গাদা ap দুঃখিত, প্রথমে আপনার প্রশ্নটি পুরোপুরি পড়েনি।
আপনাকে নিম্নলিখিত কমান্ড লাইনের যুক্তি দিয়ে JVM চালানো দরকার।
-Xmx<ammount of memory>
উদাহরণ:
-Xmx1024m
এটি JVM এর জন্য সর্বাধিক 1GB মেমরির অনুমতি দেবে allow
-XX:MaxDirectMemorySize
। এটি নিশ্চিত করার জন্য আমি ভারী প্রোফাইল দিয়েছি তবে এখনও নয়;)
MaxDirectMemorySize
কেবলমাত্র NIO বাফারগুলিকেই প্রভাবিত করে। সমস্ত ধরণের অন্যান্য নেটিভ মেমরি JVM দ্বারা ব্যবহৃত হয়।
আপনি jvm এর জন্য মেমরি সীমাবদ্ধ করতে চান (গাদা আকার নয়) ulimit -v
JVM এবং গাদা মেমরি মধ্যে পার্থক্য একটি ধারণা পেতে, এই চমৎকার নিবন্ধ কটাক্ষপাত করা http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the- জাভা process.html
ulimit
লিনাক্স কমান্ড? আমি একটি দ্রুত গুগল অনুসন্ধান করেছি এবং ulimit
JVM এর মধ্যে কোনও সম্পর্ক দেখতে পেলাম না । Y
উপরের উত্তরটি একধরনের সঠিক, আপনি জাভা প্রক্রিয়াটি কতটা নেটিভ মেমরি বরাদ্দ করে তা কৃপণভাবে নিয়ন্ত্রণ করতে পারবেন না। এটি আপনার অ্যাপ্লিকেশনটি কী করছে তার উপর নির্ভর করে।
প্ল্যাটফর্মের উপর নির্ভর করে আপনি জাভা বা অন্য কোনও প্রক্রিয়াটির আকার সীমাবদ্ধ করতে উদাহরণস্বরূপ কিছুটা পদ্ধতি ব্যবহার করতে পারবেন।
কেবলমাত্র যদি এটি সীমাটি হিট করে তবে এটি চূড়ান্তভাবে ব্যর্থ হবে আশা করবেন না। জাভা স্তূপে বরাদ্দ ব্যর্থতার চেয়ে স্থানীয় মেমরি বরাদ্দ ব্যর্থতাগুলি পরিচালনা করা খুব শক্ত hard অ্যাপ্লিকেশনটি ক্র্যাশ হওয়ার যথেষ্ট সম্ভাবনা রয়েছে তবে প্রক্রিয়াটির আকারটি কমিয়ে আনা সিস্টেমের পক্ষে কতটা সমালোচনামূলক তা নির্ভর করে যা এখনও আপনার উপযুক্ত হতে পারে।
নেটিভহীপ -XX দ্বারা বাড়ানো যেতে পারে: ম্যাক্সডাইরেক্টমিউরিসাইজ = 256 এম (ডিফল্ট 128)
আমি কখনই ব্যবহার করিনি। সম্ভবত আপনি এটি দরকারী পাবেন।