ইউজকম্প্রেসড ওপস জেভিএম পতাকাটি কী করবে এবং কখন এটি ব্যবহার করব?


85

হটস্পট জেভিএম পতাকাটি -XX:+UseCompressedOopsকী করবে এবং কখন এটি ব্যবহার করব? 64৪-বিট জাভা ইনস্ট্যান্সে (বনাম এটি ব্যবহার না করে) এটি ব্যবহার করার সময় আমি কোন ধরণের পারফরম্যান্স এবং মেমরি-ব্যবহারের পার্থক্য দেখতে পাব?


4
এটি -৪-বিট পয়েন্টারকে সংকুচিত করে। আপনি বর্ধিত পয়েন্টার আকার থেকে মেমরি ফোলা কমাতে দেখতে পাবেন, জিসিতে কম সময় ব্যয় করেছেন, সম্ভবত পারফরম্যান্সে একটি ছোট ডিপ। jdk1.6.0_22 হ'ল সর্বশেষ সূর্য JVM যা এই পতাকাটি ডিফল্টভাবে বন্ধ করে দেয়।
sjr

উত্তর:


87

গত বছরের বেশিরভাগ হটস্পট জেভিএম ডিফল্টরূপে এটি চালু করেছিল। এই বিকল্পটি রেফারেন্সগুলিকে 64-বিট জেভিএম-তে 32-বিট হতে দেয় এবং 32 গিগাবাইটের কাছাকাছি প্রবেশ করতে দেয়। (৩২-বিট পয়েন্টারের বেশি পয়েন্টারগুলি পারে) (আপনার কাছে সীমাহীন অফ হিপ মেমরিও থাকতে পারে)। এটি উল্লেখযোগ্য পরিমাণ স্মৃতি সাশ্রয় করতে পারে এবং সম্ভাব্য পারফরম্যান্স উন্নত করতে পারে।

আপনি যদি এই বিকল্পটি ব্যবহার করতে চান তবে আমি প্রস্তাব দিচ্ছি যে আপনি এমন কোনও সংস্করণে আপডেট করুন যা এটি পূর্বনির্ধারিত হিসাবে আছে কারণ কোনও ভাল কারণ যেমন বাগ থাকতে পারে, কেন এটি আগে সক্ষম করা হয়নি। জাভা 6 আপডেট 23 বা জাভা 7 আপডেট 5 ব্যবহার করে দেখুন।

সংক্ষেপে, এটি চালু করবেন না, একটি সংস্করণ ব্যবহার করুন যা এটি ডিফল্টরূপে চালু আছে।


হালনাগাদ:

জাভা 8-এ আপনার সেট করার বিকল্প রয়েছে -XX:ObjectAlignmentInBytes=এবং বাস্তবে আপনি যদি 64 গিগাবাইটের আকার মাপ করেন তবে এটি ব্যবহার করবে -XX:ObjectAlignmentInBytes=16এবং এখনও 32-বিট রেফারেন্স ব্যবহার করবে ।


আমি এই নিবন্ধটি পড়েছি: community.oracle.com/message/10019916 যা উল্লেখ করে যে আমাদের সর্বদা এই পতাকাটি ডিফল্টরূপে সক্ষম করা সত্ত্বেও ম্যানুয়ালি ব্যবহার করা উচিত। কোন চিন্তা?
ভ্যানভাল

4
@ ওভালওয়াল এটির প্রস্তাবিত আপনি যদি ব্যবহার করছেন তবে JE cache এটি কারণ আপনি কোনও কারণে কমপ্রেস উফ ব্যবহার করছেন কিনা তা কার্যকর হতে পারে না। আমি কয়েকটি পদ্ধতি সম্পর্কে ভাবতে পারি যা আপনাকে এই বিটিডব্লু বলতে পারে। আপনার যদি প্রয়োজন হয় না যে আপনি যদি না জেভিএম সক্ষম না করে থাকেন তবে এটি ব্যর্থ কমান্ড লাইন আইএমএইচও-তে সুনির্দিষ্ট করার দরকার নেই। যেমন জাভা 8
পিটার ল্যারি

4
আমি মাত্র 7 গিগাবাইট এক্সএমএস এবং এক্সএমএক্স সহ উইন 8 x64 আই 7-4702 এমকিউ জেডিকে 8 ইউ 40 তে কিছু পরীক্ষা চালিয়েছি, 7 জিবি এর মধ্যে 5.4 জিবি একটি অ্যাক্সেস ডিবি থেকে লোড করা একটি বড় গাছ দ্বারা ব্যবহৃত হয়। আমার বক্তব্যটি হ'ল-এক্সএক্সটিকে ম্যানুয়ালি নির্দিষ্ট করে: + ইউজকম্প্রেসড ওপস পতাকাটি কর্মক্ষমতাতে 20% হ্রাস পায় (বড় গাছ উত্পন্ন করার সময়) এবং আরও 1 টি (3 থেকে 4 পর্যন্ত) দীর্ঘ জিসি বিরতি দেয় (ডিফল্ট জিসি সহ)। আপনি হয় এটিকে কর্মক্ষমতা হ্রাস হিসাবে বা জিসি বিরতিতে বৃদ্ধি হিসাবে গ্রহণ করেন। যেভাবেই হোক, এটি 20% ধীর ছিল।
zmirc

4
প্রতিটি অ্যাপ্লিকেশনের নিজস্ব মেমরি এবং ব্যবহারের প্রোফাইল রয়েছে। আমাদের ক্ষেত্রে, 32 ববিট জেভিএম থেকে আসা একটি ডেস্কটপ অ্যাপ্লিকেশন, + ইউজকম্প্রেসডহপস পতাকাটি দিনটি বাঁচায়, কারণ এটি ক্লায়েন্টের পুরানো 4 জিবি মেশিনে ফিট করার জন্য মেমরির ব্যবহার যথেষ্ট পরিমাণে কম রাখে এবং 32% জেভিএমের তুলনায় 30% এ পারফরম্যান্স বাড়িয়ে তোলে।
অ্যালেক্স বার্থ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.