0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

خطای Invalid maximum heap size در جاوا در چه مواردی رخ می دهد و دلیل آن چیست؟

3 پاسخ

+1 امتیاز
قبل توسط (7.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

ممکن است شما بیش از مقداری که JRE شما از حافظه پشتیبانی میکند، به آن مقدار داده باشید.

همانگونه که در تصویر زیر می بینید در JRE 32bit ، تنها از 2GB حافظه پشتیبانی می شود که از این مقدار تنها 1GB از آن برای Heap قابل مقدار دهی است. (که این مقدار وابسته به سیستم عامل ممکن است حتی تا 512MB نیز کم شود.

اگر شما هنگام اجرای برنامه جاوا صراحتا مقدار Xmx را ذکر نمایید، و این مقدار بیش از مقدار قابل پشتیبانی باشد، با این خطا مواجه می شوید.

0 امتیاز
قبل توسط (1.6هزار امتیاز)
ویرایش شده قبل توسط

من تو جاوا وارد نیستم اما فکر کنم ساختار استفاده از حافظه در جاوا و سی شارپ یکسان باشه. 

با توجه به شکل اگر در هنگام تعریف میزان و یا استفاده از حافظه در Reference data type  ها، از حداکثر مقدار Heapی که سیستم عمال یا FrameWork به Process  اختصاص داده رد شوین خطای مذکور نمایش داده خواهد شد.

معمولاً روی لیست ها یا برنامه های بازگشتی که بیشتر از 4گیگ از heap استفاده کنند این خطا نمایش داده می شود.

ببخشید خیلی سعی کردم روان بگم! این مطلب خیلی جامع اینجا نوشته شده است.

0 امتیاز
قبل توسط (1.1هزار امتیاز)

پارامتر -Xmx برای مشخص کردن ماکسیمم مقدار سایز حافظه heap در یک برنامه جاوا استفاده می شود:

java -Xmx 128m MyApp

زمانی که خطای Invalid maximum heap size رخ می دهد بدین معنی است که مقدار حافظه heap درخواستی در حال حاضر برای تخصیص به JVM موجود نیست (سیستم عامل حافظه رم کافی ندارد).

سوالات مشابه

0 امتیاز
1 پاسخ 1.6هزار بازدید
+2 امتیاز
1 پاسخ 2.2هزار بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 842 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 559 بازدید
0 امتیاز
1 پاسخ 943 بازدید
0 امتیاز
0 پاسخ 403 بازدید
+1 امتیاز
1 پاسخ 846 بازدید
0 امتیاز
0 پاسخ 450 بازدید
+1 امتیاز
1 پاسخ 574 بازدید
...