হটস্পট জেভিএম পতাকাটি -XX:+UseCompressedOops
কী করবে এবং কখন এটি ব্যবহার করব? 64৪-বিট জাভা ইনস্ট্যান্সে (বনাম এটি ব্যবহার না করে) এটি ব্যবহার করার সময় আমি কোন ধরণের পারফরম্যান্স এবং মেমরি-ব্যবহারের পার্থক্য দেখতে পাব?
হটস্পট জেভিএম পতাকাটি -XX:+UseCompressedOops
কী করবে এবং কখন এটি ব্যবহার করব? 64৪-বিট জাভা ইনস্ট্যান্সে (বনাম এটি ব্যবহার না করে) এটি ব্যবহার করার সময় আমি কোন ধরণের পারফরম্যান্স এবং মেমরি-ব্যবহারের পার্থক্য দেখতে পাব?
উত্তর:
গত বছরের বেশিরভাগ হটস্পট জেভিএম ডিফল্টরূপে এটি চালু করেছিল। এই বিকল্পটি রেফারেন্সগুলিকে 64-বিট জেভিএম-তে 32-বিট হতে দেয় এবং 32 গিগাবাইটের কাছাকাছি প্রবেশ করতে দেয়। (৩২-বিট পয়েন্টারের বেশি পয়েন্টারগুলি পারে) (আপনার কাছে সীমাহীন অফ হিপ মেমরিও থাকতে পারে)। এটি উল্লেখযোগ্য পরিমাণ স্মৃতি সাশ্রয় করতে পারে এবং সম্ভাব্য পারফরম্যান্স উন্নত করতে পারে।
আপনি যদি এই বিকল্পটি ব্যবহার করতে চান তবে আমি প্রস্তাব দিচ্ছি যে আপনি এমন কোনও সংস্করণে আপডেট করুন যা এটি পূর্বনির্ধারিত হিসাবে আছে কারণ কোনও ভাল কারণ যেমন বাগ থাকতে পারে, কেন এটি আগে সক্ষম করা হয়নি। জাভা 6 আপডেট 23 বা জাভা 7 আপডেট 5 ব্যবহার করে দেখুন।
সংক্ষেপে, এটি চালু করবেন না, একটি সংস্করণ ব্যবহার করুন যা এটি ডিফল্টরূপে চালু আছে।
হালনাগাদ:
জাভা 8-এ আপনার সেট করার বিকল্প রয়েছে -XX:ObjectAlignmentInBytes=
এবং বাস্তবে আপনি যদি 64 গিগাবাইটের আকার মাপ করেন তবে এটি ব্যবহার করবে -XX:ObjectAlignmentInBytes=16
এবং এখনও 32-বিট রেফারেন্স ব্যবহার করবে ।
JE cache
এটি কারণ আপনি কোনও কারণে কমপ্রেস উফ ব্যবহার করছেন কিনা তা কার্যকর হতে পারে না। আমি কয়েকটি পদ্ধতি সম্পর্কে ভাবতে পারি যা আপনাকে এই বিটিডব্লু বলতে পারে। আপনার যদি প্রয়োজন হয় না যে আপনি যদি না জেভিএম সক্ষম না করে থাকেন তবে এটি ব্যর্থ কমান্ড লাইন আইএমএইচও-তে সুনির্দিষ্ট করার দরকার নেই। যেমন জাভা 8