پرش به مطلب اصلی

Java و حافظه

GPCL بر اساس نسخهٔ بازی، Java را خودکار انتخاب می‌کند و بر اساس حافظهٔ رایانه تخصیص می‌دهد. در بیشتر موارد نیازی به تغییر دستی نیست.

تطابق نسخه‌های Java​

نسخهٔ MinecraftJava لازم
1.16.5 و قدیمی‌ترJava 8
1.17 – 1.20.4Java 17
1.20.5 و جدیدترJava 21

اگر هنگام اجرا Java لازم نبود، GPCL خودش دانلود و نصب می‌کند. اگر دانلود ناموفق بود، به تنظیمات ← دانلود ← دانلود Java بروید و منبع آینهٔ دیگری را امتحان کنید.

Java در پوشهٔ خود GPCL نصب می‌شود، روی Javaهای دیگر سیستم اثری ندارد و متغیر JAVA_HOME سیستم را تغییر نمی‌دهد.

حافظه: خودکار​

پیش‌فرض «خودکار» است. منطق تخصیص دو مرحله دارد:

  1. اول ۳۰٪ حافظهٔ فیزیکی تخمین زده می‌شود، به عدد صحیح GB به پایین گرد می‌شود و بین ۲ تا ۸ GB محدود می‌گردد؛
  2. سپس حافظهٔ آزاد فعلی لحاظ می‌شود: حداقل ۱ GB برای سیستم کنار گذاشته می‌شود، حداقل ۲ GB در نظر گرفته می‌شود، نتیجه به ۵۱۲ MB به پایین گرد می‌شود و کمترِ دو مقدار انتخاب می‌شود.

چند نتیجهٔ واقعی:

حافظهٔ فیزیکیآزاد فعلیتخصیص خودکار
۱۶ GB۸ GB۴ GB
۱۶ GB۳٫۹ GB۲٫۵ GB
۸ GB۴ GB۲ GB

صفحهٔ تنظیمات حافظهٔ مصرف‌شده / کل و مقدار آزاد فعلی را نشان می‌دهد. وقتی حافظهٔ آزاد کم باشد، تخصیص خودکار کم می‌شود و پیشنهاد می‌کند اول چند برنامه را ببندید.

-Xmx یک سقف است، نه اینکه از همان ابتدا پر شود. پس تخصیص بر اساس حافظهٔ آزاد همان لحظه پایدارتر از دادن یک مقدار بزرگ ثابت است.

حافظه: دستی​

اگر برای مدپک یا مجموعهٔ بزرگ مودها کافی نبود، «دستی» را انتخاب و لغزنده را جابه‌جا کنید. برای سیستم و برنامه‌های دیگر جا بگذارید و همهٔ حافظهٔ فیزیکی را به بازی ندهید.

OutOfMemoryError یعنی حافظه کافی نیست:

  1. تخصیص را یک پله بالاتر ببرید و دوباره امتحان کنید؛
  2. اگر نشد، مودها را کم کنید؛
  3. هم‌زمان برنامه‌های حافظه‌بر مانند مرورگر را ببندید.

تنظیم G1GC​

در تنظیمات ← پیشرفته ← مدیریت حافظه تنظیم G1GC هست و پیش‌فرض خاموش است. فقط وقتی نوسان فریم و توقف‌های GC محسوس است پیشنهاد می‌شود روشنش کنید؛ با روشن شدن، مجموعه‌ای از پارامترهای رایج G1GC اضافه می‌شود.

پارامترهای JVM سفارشی هم در همین بخش‌اند. پارامتر اشتباه باعث می‌شود بازی اصلاً بالا نیاید؛ اگر مطمئن نیستید تغییر ندهید.

بهینه‌سازی حافظه پیش از اجرا​

با روشن بودن این گزینه، GPCL پیش از اجرای بازی بخشی از حافظه‌ای که خودش گرفته آزاد می‌کند. فقط فرایند لانچر را پاک می‌کند، به Minecraft در حال اجرا کاری ندارد و وضعیت ورود را پاک نمی‌کند.

روی دیسک‌های مکانیکی ممکن است این مرحله وقفهٔ کوتاهی ایجاد کند که طبیعی است.