ডিফল্ট সর্বোচ্চ জাভা হিপ আকারটি কীভাবে নির্ধারণ করা হয়?


419

আমি -Xmxnজাভা কমান্ড লাইন থেকে বিকল্পটি বাদ দিলে একটি ডিফল্ট মান ব্যবহার করা হবে। জাভা ডকুমেন্টেশন অনুযায়ী

"সিস্টেম কনফিগারেশনের উপর ভিত্তি করে রানটাইমে ডিফল্ট মান নির্বাচন করা হয়"

কোন সিস্টেম কনফিগারেশন সেটিংস ডিফল্ট মানকে প্রভাবিত করে?


1
সিস্টেম কনফিগারেশন এর অর্থ: ক) ক্লায়েন্ট জেভিএম বনাম সার্ভার জেভিএম বি) 32 বিট বনাম 64 বিট। লিঙ্কগুলি: 1) J2SE5.0 ডকস.অরাকল. com/ javase/ 6/ docs/ technotes/ guides/ vm/… 2 থেকে আপডেট ) সংক্ষিপ্ত উত্তর: ডকস.ওরাকল. com/ javase/ 8/ docs/ technotes / guides / vm / gctuning /… 3) বিস্তারিত উত্তর: docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/… 4) ক্লায়েন্ট বনাম সার্ভার: javacodegeeks.com/2011/07/jvm-options-client- বনাম-
সার্ভার.এইচটিএমএল

2
উপরের লিঙ্কগুলি থেকে বুঝতে এটি শক্ত। সুতরাং এখানে তাদের সংক্ষিপ্তসার: ক্লায়েন্ট jvm এর সর্বাধিক স্তরের আকার 256 এমবি (সেখানে একটি ব্যতিক্রম রয়েছে, উপরের লিঙ্কগুলি থেকে পড়ুন)। 32 বিট এর সার্ভার jvm এর জন্য ম্যাক্সিমুন হিপ আকার 1gb এবং 64 বিটের 32gb (আবার এখানেও ব্যতিক্রম রয়েছে are লিঙ্কগুলি থেকে দয়া করে এটি পড়ুন)। সুতরাং এটির 256 এমবি বা 1 জিবি বা 32 জিবি
বৈষ্ণব রমেশ থ্রিসুর

আরও দেখুন stackoverflow.com/a/56036202/32453
rogerdpack

উত্তর:


505

উইন্ডোজে, আপনি যেখানে আপনার অ্যাপ্লিকেশনগুলি চালিত হয় সেখানে ডিফল্টগুলি জানতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

জাভা-এক্সএক্স: + প্রিন্টফ্লেগস ফাইনাল-রূপান্তর | সন্ধানকারী হিপসাইজ

বিকল্পগুলি MaxHeapSize(এর জন্য -Xmx) এবং এর InitialHeapSizeজন্য দেখুন -Xms

ইউনিক্স / লিনাক্স সিস্টেমে আপনি এটি করতে পারেন

জাভা-এক্সএক্স: + প্রিন্টফ্লেগস ফাইনাল-রূপান্তর | গ্রেপ হিপসাইজ

আমি বিশ্বাস করি ফলস্বরূপ আউটপুট বাইটে রয়েছে।


3
আমি এটির মতো একটি দুর্দান্ত বিকল্পের জন্য আশা করছিলাম তবে এটি আইবিএম এর জাভা 6 ভিএম ব্যবহার করে আমার পক্ষে কাজ করে নি।
ম্যাট ল্যাভিন

গ্রেট! আমি কি এই সমস্ত ডিফল্ট বিকল্পের সাথে খেলতে পারি? প্রত্যেকের জন্য সংশ্লিষ্ট ENV পরিবর্তনশীল কি?
এলিস্ট

28
আমার ক্ষেত্রে লিনাক্সে, InitialHeapSize = 262803264এবং MaxHeapSize = 4206886912যা আমার ভুল না হলে প্রায় 256 এমবি এবং 4 জিবি । এর অর্থ কি প্রতিটি জেভিএম এমনভাবে শুরু হয় যেন এটি -Xms256m -Xmx4gবিকল্পগুলির সাথে চালু হয়েছিল ?
ইউরি নাকনটেকনই

9
একটি উইন্ডোজ সিস্টেমে:java -XX:+PrintFlagsFinal -version | findstr /R /C:"HeapSize"
sp00m

1
@ ম্যাটানস্টার অন আমার লিনাক্স -versionদীর্ঘ "ব্যবহার" পাঠ্যটিকে দমন করে stderr
ফ্রাঙ্কলিন ইউ

115

জাভা এসই 5 এর জন্য: আবর্জনা সংগ্রাহক এরগনোমিক্স [ওরাকল] অনুসারে :

প্রাথমিক স্তূপ আকার:

মেশিনের মেশিনের শারীরিক মেমরির 1/64 তম বড় বা কিছু যুক্তিসঙ্গত সর্বনিম্ন। জে 2 এসই 5.0 এর আগে, ডিফল্ট প্রাথমিক স্তূপের আকারটি একটি যুক্তিসঙ্গত ন্যূনতম ছিল, যা প্ল্যাটফর্মের দ্বারা পরিবর্তিত হয়। আপনি -Xms কমান্ড-লাইন বিকল্পটি ব্যবহার করে এই ডিফল্টটিকে ওভাররাইড করতে পারেন।

সর্বাধিক গাদা আকার:

দৈহিক মেমরির 1/4 র্থ বা 1 জিবি এর ছোট। J2SE 5.0 এর আগে, ডিফল্ট সর্বাধিক হ্যাপের আকার ছিল 64MB B আপনি -Xmx কমান্ড-লাইন বিকল্পটি ব্যবহার করে এই ডিফল্টটিকে ওভাররাইড করতে পারেন।

হালনাগাদ:

টম অ্যান্ডারসন তার মন্তব্যে যেমন উল্লেখ করেছেন, উপরেরটি সার্ভার-ক্লাস মেশিনগুলির জন্য। 5.0 জাভাটিএম ভার্চুয়াল মেশিনে এরগনমিক্স থেকে :

জেএসইএস প্ল্যাটফর্ম সংস্করণ ৫.০-তে একটি সার্ভার-ক্লাস মেশিন হিসাবে চিহ্নিত মেশিনের একটি শ্রেণিকে একটি মেশিন হিসাবে সংজ্ঞায়িত করা হয়েছে

  • 2 বা ততোধিক শারীরিক প্রসেসর
  • 2 বা ততোধিক গিগাবাইট শারীরিক স্মৃতি

উইন্ডোজ অপারেটিং সিস্টেমের একটি সংস্করণ চলমান 32 বিট প্ল্যাটফর্ম ব্যতীত। অন্যান্য সমস্ত প্ল্যাটফর্মে ডিফল্ট মানগুলি 1.4.2 সংস্করণের ডিফল্ট মানগুলির সমান।

ডিফল্টরূপে J2SE প্ল্যাটফর্ম সংস্করণে 1.4.2 এ নিম্নলিখিত নির্বাচনগুলি করা হয়েছিল

  • 4 এমবিতে প্রাথমিক স্তরের আকার
  • M৪ এমবিতে সর্বাধিক স্তরের আকার

4
ক্যাভ্যাট: এটি ক্লায়েন্ট-ক্লাস নয়, সার্ভার-ক্লাস মেশিনগুলির জন্য। আপনাকে java.sun.com/docs/hotspot/gc5.0/ergo5.html এর সাথে মিলিয়ে সেই দস্তাবেজটি পড়তে হবে যা এই শর্তাদি সংজ্ঞা দেয় এবং ক্লায়েন্ট-শ্রেণীর মেশিনগুলির মধ্যে কী ঘটে। কুকুরবাণ, আমি কি প্রাসঙ্গিক প্যাসেজগুলি উদ্ধৃত করতে আপনার উত্তর সম্পাদনার জন্য বিনীতভাবে পরামর্শ দিতে পারি?
টম অ্যান্ডারসন

3
এটি ২০১২ সালের একটি হাস্যকর কম ডিফল্ট Very৪ মেগাবাইটের মধ্যে খুব কম গুরুতর অ্যাপ্লিকেশন ফিট হবে।
মার্ক ই। হাজেস

1
আর্নেস্তো এর অক্টোবর 30 ক্লায়েন্ট মেশিনের জন্য 2012 উত্তর জাভা পর 6 আপডেটের 18, দেখ
অ্যান্ডি থমাস

এছাড়াও মনে রাখবেন যে এটি বলে: "গাদা আকারের জন্য দেওয়া সীমানা এবং ভগ্নাংশগুলি জে 2 এসই 5.0-এর জন্য সঠিক computers পরবর্তী কম্পিউটারে আরও শক্তিশালী হওয়ার সাথে সাথে পরবর্তী প্রকাশে এগুলি পৃথক হতে পারে" "
লোডোভিক

যাইহোক, এই আলগো কেবল সমান্তরাল আবর্জনা সংগ্রাহকের জন্য।
মাইক আরগেরিও

45

জাভা 8 বেশী সময় লাগে 1/64 তম আপনার জন্য আপনার শারীরিক মেমরি Xmssize (নূন্যতম HeapSize) এবং কম 1 / 4th আপনার জন্য আপনার শারীরিক মেমরি -Xmxsize (সর্বোচ্চ HeapSize)।

আপনি এটি দ্বারা ডিফল্ট জাভা হ্যাপের আকারটি পরীক্ষা করতে পারেন :

ইন উইন্ডোজ :

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

ইন লিনাক্স :

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

কোন সিস্টেম কনফিগারেশন সেটিংস ডিফল্ট মানকে প্রভাবিত করে?

মেশিনের শারীরিক মেমরি এবং জাভা সংস্করণ।


5
এটি 1/6 এর পরিবর্তে 1/64 নয়?
বৈষ্ণব রমেশ ত্রিশুর

1
হ্যাঁ এক্সএমসাইজ (ন্যূনতম হিপসাইজ / ইনিশিয়াল হিপসাইজ) আপনার শারীরিক মেমরির 1/64 তম এবং এক্সএমএক্সসিজে (সর্বাধিক হিপসাইজ / ম্যাক্সহীপসাইজ) আপনার শারীরিক স্মৃতি থেকে 1/4 এরও কম। (আমার ম্যাকের জন্য প্রাক্তন, ১GB গিগাবাইট র‌্যাম পেয়ে আমি ইউিনটেক্স ইনিশিয়াল হিপসাইজ পাচ্ছি: = 268435456 {প্রোডাক্ট} ইউিন্টেক্স ম্যাক্সহীপ সাইজ: = 4294967296 {প্রোডাক্ট}, i, e Xms 268 মেগাবাইট এবং এক্সএমএক্স 4.29 গিগাবাইট
জেথওয়ানি

1
উত্তর সম্পাদনা করুন। এটি 1/64 তম, 1/6 তম নয়।
পান্নাঘিউ

35

এটি জাভা 6 আপডেট 18 এ পরিবর্তিত হয়েছে ।

ধরে নিই যে আমাদের কাছে 1 গিগাবাইটেরও বেশি দৈহিক মেমরি রয়েছে (এই দিনগুলিতে বেশ সাধারণ), সার্ভার ভিএম এর জন্য এটি আপনার শারীরিক মেমরির সর্বদা 1/4 তম v


8
ভুল, লিঙ্কযুক্ত পৃষ্ঠাটি বলেছেgreater than or equal to 1 gigabyte of physical memory results in a maximum heap size of 256 megabytes
পাওলো ফুলগনি

5
আমি মাত্র 5 জিবি শারীরিক স্মৃতিযুক্ত একটি লিনাক্স মেশিনে পরীক্ষা করেছি। ডিফল্ট হিসাবে 1.5GB সর্বোচ্চ গাদা শো
আর্নেস্তো

1
@ পাওলোফুলগনি না, আমি এখনই অন্য ব্যবহারিক উদাহরণটি পর্যবেক্ষণ করছি: 129 গিগাবাইটের শারীরিক মেমরির ফলাফল 32 গিগাইট সর্বাধিক হিপ আকারের
কেরিল

কেন এই অধিকার জন্য APL এর উত্তর দেখুন: stackoverflow.com/a/13310792/32453 আরও দেখুন stackoverflow.com/a/56036202/32453
rogerdpack

16

আর্নেস্তো ঠিক বলেছেন। লিঙ্ক অনুযায়ী তিনি পোস্ট করেছেন [1]:

ক্লায়েন্ট জেভিএম হিপ কনফিগারেশন আপডেট হয়েছে

ক্লায়েন্ট জেভিএম ...

  • ডিফল্ট সর্বাধিক হিপ আকারটি দৈহিক মেমরির 192 মগাবাইটের শারীরিক মেমরির অর্ধেক এবং অন্যথায় 1 গিগাবাইটের দৈহিক মেমরির আকারের দৈহিক মেমরির এক চতুর্থাংশ।

    উদাহরণস্বরূপ, যদি আপনার মেশিনে 128 মেগাবাইট দৈহিক মেমরি থাকে তবে সর্বাধিক হ্যাপের আকারটি 64 মেগাবাইট এবং 1 গিগাবাইটের চেয়ে বেশি বা সমান দৈহিক মেমরির সর্বাধিক 256 মেগাবাইটের হিপ আকারে ফলাফল হয়।

  • আপনার প্রোগ্রামটির প্রয়োজনের জন্য পর্যাপ্ত অবজেক্ট তৈরি না করা সর্বাধিক গাদা আকার জেভিএম ব্যবহার করবে না। প্রারম্ভিক হিপ সাইজ হিসাবে চিহ্নিত অনেক ছোট পরিমাণ, জেভিএম আরম্ভের সময় বরাদ্দ করা হয়। ...

  • ...
  • সার্ভার জেভিএম হিপ কনফিগারেশন এরর্গোনমিক্স এখন ক্লায়েন্টের সমান, ব্যতীত 32-বিট জেভিএম-এর জন্য ডিফল্ট সর্বাধিক হিপ আকারটি 1 গিগাবাইট , 4 গিগাবাইটের শারীরিক মেমরি আকারের সাথে সম্পর্কিত এবং 64-বিট জেভিএমের সাথে 32 গিগাবাইট সম্পর্কিত 128 গিগাবাইটের শারীরিক স্মৃতি আকারে।

[1] http://www.oracle.com/technetwork/java/javase/6u18-142093.html


9

আইবিএম জেভিএম-এর জন্য কমান্ডটি নিম্নলিখিত:

java -verbose:sizes -version

জাভা 8 এর জন্য আইবিএম এসডিকে সম্পর্কে আরও তথ্যের জন্য: http://www-01.ibm.com/support/ জ্ঞানসেন্টিটার / এসএসইকেই 2_8.0.0/com.ibm.java.lnx.80.doc/diag/appendixes/ defaults.html ? lang = en


লিঙ্কটি (কার্যকরভাবে) ভাঙা বলে মনে হচ্ছে।
পিটার মর্টেনসেন

@ পিটারমোরটেনসেন কেবলমাত্র চেক করেছেন - লিঙ্কটি ভাল
n0mer

8

অবশেষে!

জাভা 8u191 হিসাবে আপনার এখন বিকল্প রয়েছে:

-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage

যেটি ব্যবহারযোগ্য শারীরিক র্যামের শতাংশ হিসাবে গাদা আকারে ব্যবহার করতে পারে। (যা কার্নেল ব্যবহার করে র‌্যাম ইনস্টল করা তেমনই কম)।

আরও তথ্যের জন্য জাভা 8 u191 এর জন্য রিলিজ নোটগুলি দেখুন । নোট করুন বিকল্পগুলি একটি ডকার শিরোনামে উল্লেখ করা হয়েছে তবে বাস্তবে আপনি ডকার পরিবেশে বা aতিহ্যবাহী পরিবেশে তা প্রয়োগ করে।

এর জন্য ডিফল্ট মান MaxRAMPercentage25%। এটি অত্যন্ত রক্ষণশীল।

আমার নিজস্ব নিয়ম: যদি আপনার হোস্ট প্রদত্ত জাভা অ্যাপ্লিকেশনটি চালানোর জন্য কম বেশি উত্সর্গীকৃত হয়, তবে আপনি সমস্যা ছাড়াই নাটকীয়ভাবে বৃদ্ধি করতে পারেন। আপনি যদি লিনাক্সে থাকেন তবে কেবলমাত্র স্ট্যান্ডার্ড ডেমোনগুলি চালাচ্ছেন এবং 1 গিগাবাইটের কাছাকাছি কোথাও থেকে র‌্যাম ইনস্টল করেছেন এবং আমি জেভিএম এর হিপটির জন্য 75% ব্যবহার করতে দ্বিধা করব না। আবার মনে রাখবেন যে এটি র‌্যামের 75% উপলব্ধ , র‌্যাম ইনস্টলড নয় । যা অবশিষ্ট রয়েছে তা হ'ল হোস্ট এবং জেভিএমের প্রয়োজন মতো অন্যান্য ধরণের মেমরির (যেমন স্ট্যাকের জন্য) চলমান অন্যান্য ব্যবহারকারীর জমি প্রক্রিয়াগুলি। সব মিলিয়ে, এই 25% যে খুব ভাল বাকি তা পুরোপুরি ফিট হবে। স্পষ্টতই, আরও ইনস্টল করা র‌্যামের সাথে 75% একটি নিরাপদ এবং সুরক্ষিত বাজি। (আমি আশা করি জেডিকে লোকেরা এমন কোনও বিকল্প প্রয়োগ করেছে যেখানে আপনি মই নির্দিষ্ট করতে পারবেন)

MaxRAMPercentageবিকল্পটি সেটিংয়ের মতো দেখাচ্ছে:

java -XX:MaxRAMPercentage=75.0  ....

নোট করুন যে এই শতাংশের মানগুলি 'ডাবল' প্রকারের এবং তাই আপনাকে অবশ্যই দশমিক ডট দিয়ে সেগুলি নির্দিষ্ট করতে হবে । আপনি যদি "75.0" এর পরিবর্তে "75" ব্যবহার করেন তবে আপনি কিছুটা বিজোড় ত্রুটি পাবেন।


7

ডিফল্ট মান সিস্টেম কনফিগারেশনের উপর ভিত্তি করে রানটাইমে বেছে নেওয়া হয়

ডকুমেন্টেশন পৃষ্ঠাটি দেখুন

ডিফল্ট গাদা আকার

কমান্ড লাইনে প্রাথমিক এবং সর্বাধিক হিপ মাপগুলি নির্দিষ্ট না করা না হলে তারা মেশিনে মেমরির পরিমাণের ভিত্তিতে গণনা করা হয়।

  1. ক্লায়েন্ট জেভিএম ডিফল্ট প্রাথমিক এবং সর্বাধিক হ্যাপ আকার:

    ডিফল্ট সর্বাধিক হিপ আকারটি দৈহিক মেমরির 192 মগাবাইট (এমবি) অবধি শারীরিক মেমরির অর্ধেক এবং অন্যথায় শারীরিক মেমরির এক চতুর্থাংশ 1 গিগাবাইটের (গিগাবাইট) দৈহিক মেমরি আকারের হয়

  2. সার্ভার জেভিএম ডিফল্ট প্রাথমিক এবং সর্বাধিক হ্যাপ আকার:

    ৩২-বিট জেভিএম-তে, 4 গিগাবাইট বা আরও বেশি শারীরিক মেমরি থাকলে ডিফল্ট সর্বাধিক হিপ আকারটি 1 গিগাবাইট পর্যন্ত হতে পারে-৪-বিট জেভিএম-তে, 128 গিগাবাইট বা আরও বেশি শারীরিক মেমরি থাকলে ডিফল্ট সর্বাধিক হিপ আকার 32 গিগাবাইট পর্যন্ত হতে পারে

কোন সিস্টেম কনফিগারেশন সেটিংস ডিফল্ট মানকে প্রভাবিত করে?

আপনি ফ্ল্যাগ- এক্সএমএস (প্রাথমিক হিপ আকার) এবং- এক্সএমএক্স (সর্বোচ্চ গাদা আকার) ব্যবহার করে প্রাথমিক এবং সর্বাধিক হ্যাপ মাপ নির্দিষ্ট করতে পারেন । আপনি যদি জানেন যে আপনার অ্যাপ্লিকেশনটি কত ভালভাবে কাজ করতে পারে তবে আপনি XX এবং -Xmx একই মানতে সেট করতে পারেন


5

Xmsএবং Xmxজাভা ভার্চুয়াল মেশিন হয় পতাকা (জেভিএম):

  • Xms: initial and minimumজেভিএমheap size
    • Format: -Xmx<size>[g|G|m|M|k|K]
    • Default Size:
      • -server মোড: ফ্রি শারীরিক মেমরির 25%,> = 8 এমবি এবং <= 64 এমবি
      • -client mode: বিনামূল্যে শারীরিক মেমরির 25%,> = 8 এমবি এবং <= 16 এমবি
    • Typical Size:
      • -Xms128M
      • -Xms256M
      • -Xms512M
    • Function/ Effect:
      • -> জেভিএম বরাদ্দ Xmsআকার মেমরি দিয়ে শুরু
  • Xmx: maximumজেভিএমheap size
    • Format: -Xmx<size>[g|G|m|M|k|K]
    • Default Size:
      • <= R27.2
        • Windows: 75%মোট শারীরিক স্মৃতি পর্যন্ত1GB
        • Linux/Solaris: 50%উপলব্ধ শারীরিক মেমরি পর্যন্ত1GB
      • >= R27.3
        • Windows X64: 75%মোট শারীরিক স্মৃতি পর্যন্ত2GB
        • Linux/Solaris X64: 50%উপলব্ধ শারীরিক মেমরি পর্যন্ত2GB
        • Windows x86: 75%মোট শারীরিক স্মৃতি পর্যন্ত1GB
        • Linux/Solaris X86: 50%উপলব্ধ শারীরিক মেমরি পর্যন্ত1GB
    • Typical Size:
      • -Xmx1g
      • -Xmx2084M
      • -Xmx4g
      • -Xmx6g
      • -Xmx8g
    • Function/ Effect:
      • -> জেভিএম Xmxআকারের মেমরির সর্বোচ্চ ব্যবহার করতে দেয়
        • যখন অতিক্রম Xmx, হবেjava.lang.OutOfMemoryError
          • কিভাবে ঠিক করবেন OutOfMemoryError?
            • Xmxমান অতিক্রম
              • উদাহরণ: থেকে -Xmx4gথেকে-Xmx8g

আরো বিস্তারিত

অফিসিয়াল ডকটি দেখুন: এক্স কমান্ড-লাইন বিকল্প


এটি কি জ্রোকিত জেভিএমের পক্ষে নয়? (ওরাকলের হটস্পট
জেভিএমের বিপরীতে

4

বেশ কয়েকটি পরামিতি প্রজন্মের আকারকে প্রভাবিত করে। নিম্নলিখিত চিত্রটি স্তূপে প্রতিশ্রুতিবদ্ধ স্থান এবং ভার্চুয়াল স্থানের মধ্যে পার্থক্য চিত্রিত করে। ভার্চুয়াল মেশিনের সূচনাতে, গাদা করার জন্য পুরো স্থানটি সংরক্ষিত থাকে। সংরক্ষিত স্থানের আকারটি -Xmxবিকল্পের সাথে নির্দিষ্ট করা যেতে পারে । যদি -Xmsপ্যারামিটারের মানটি প্যারামিটারের মানের চেয়ে ছোট -Xmxহয় তবে সংরক্ষিত সমস্ত স্থান তত্ক্ষণাত ভার্চুয়াল মেশিনে প্রতিশ্রুতিবদ্ধ হয় না। এই চিত্রটিতে অনাবৃত স্থানটিকে "ভার্চুয়াল" লেবেলযুক্ত করা হয়েছে। স্তূপের বিভিন্ন অংশ (স্থায়ী প্রজন্ম, মেয়াদী প্রজন্ম এবং তরুণ প্রজন্ম) প্রয়োজন হিসাবে ভার্চুয়াল স্পেসের সীমাতে বাড়তে পারে।

এখানে চিত্র বর্ণনা লিখুন

ডিফল্টরূপে, ভার্চুয়াল মেশিনটি প্রতিটি সংগ্রহের একটি নির্দিষ্ট সীমার মধ্যে লাইভ অবজেক্টের জন্য মুক্ত জায়গার অনুপাত রাখার চেষ্টা করার জন্য প্রতিটি সংগ্রহের স্তূপে বড় হয় বা সঙ্কুচিত হয়। এই লক্ষ্য পরিসীমাটি পরামিতিগুলির দ্বারা শতাংশ হিসাবে সেট করা হয়েছে - XX:MinHeapFreeRatio=<minimum>এবং -XX:MaxHeapFreeRatio=<maximum>এবং মোট আকারটি নীচে -Xms<min>এবং উপরের দ্বারা সীমাবদ্ধ -Xmx<max>

পরামিতি ডিফল্ট মান

MinHeapFreeRatio 40

ম্যাক্সহ্যাপফ্রিআরটিও 70

-এক্সএমএস 3670 কে

-এক্সএমএক্স 64 মি

-৪-বিট সিস্টেমে হ্যাপ সাইজের প্যারামিটারগুলির ডিফল্ট মানগুলি প্রায় 30% দ্বারা ছোট করে দেওয়া হয়। এই বৃদ্ধিটি একটি 64-বিট সিস্টেমে বৃহত আকারের অবজেক্টের ক্ষতিপূরণ দেওয়ার জন্য।

এই পরামিতিগুলির সাথে, যদি কোনও প্রজন্মের মুক্ত স্থানের শতাংশ 40% এর নিচে নেমে আসে তবে প্রজন্মের সর্বাধিক অনুমোদিত আকার পর্যন্ত 40% মুক্ত স্থান বজায় রাখতে প্রসারিত করা হবে। একইভাবে, যদি মুক্ত স্থানটি 70% এর বেশি হয়ে যায়, তবে প্রজন্মকে চুক্তিবদ্ধ করা হবে যাতে কেবলমাত্র 70% স্থানটি বিনামূল্যে প্রজন্মের সর্বনিম্ন আকারের সাপেক্ষে।

বড় সার্ভার অ্যাপ্লিকেশনগুলি প্রায়শই এই ডিফল্টগুলির সাথে দুটি সমস্যা অনুভব করে। একটি হ'ল ধীরে ধীরে শুরু, কারণ প্রাথমিক স্তূপটি ছোট এবং অবশ্যই অনেকগুলি বড় সংগ্রহের মধ্যে এটি পুনরায় আকার দিতে হবে। আরও চাপ দেওয়ার সমস্যাটি হ'ল বেশিরভাগ সার্ভার অ্যাপ্লিকেশনগুলির জন্য ডিফল্ট সর্বাধিক হিপ আকারটি অযৌক্তিকভাবে ছোট। সার্ভার অ্যাপ্লিকেশনগুলির জন্য থাম্বের বিধিগুলি হ'ল:

  • আপনার বিরতিতে সমস্যা না থাকলে ভার্চুয়াল মেশিনকে যতটা সম্ভব মেমরি দেওয়ার চেষ্টা করুন। ডিফল্ট আকার (M৪ এমবি) প্রায়শই খুব ছোট।
  • ভার্চুয়াল মেশিন থেকে সর্বাধিক গুরুত্বপূর্ণ আকারের সিদ্ধান্ত মুছে ফেলার মাধ্যমে -Xms এবং -Xmx একই মানে সেট করা পূর্বাভাসযোগ্যতা বৃদ্ধি করে। যাইহোক, ভার্চুয়াল মেশিনটি যদি আপনি কোনও বাজে পছন্দ করেন তবে ক্ষতিপূরণ দিতে অক্ষম।
  • সাধারণত, প্রসেসরের সংখ্যা বাড়ার সাথে সাথে স্মৃতিশক্তি বাড়ান, যেহেতু বরাদ্দ সমান্তরাল করা যায়।

    নেই সম্পূর্ণ নিবন্ধ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.