Customize
Java, memory, and performance
Select a compatible runtime and tune memory and garbage collection without guesswork.
Two versions of this page follow. Step by step walks through the task in order. In depth explains the underlying behavior. They describe the same product, at different levels of detail.
Step by step
Follow the steps in order. No prior modding knowledge assumed.
Minecraft versions require compatible Java versions. Agora can discover or download runtimes and select sensible garbage-collection behavior automatically.
After this you will be able to
- Use a compatible Java runtime.
- Allocate enough memory without starving the computer.
- Keep automatic GC tuning unless evidence supports a change.
Let Agora manage Java
Automatic runtime mode selects a compatible detected or managed runtime. Managed downloads are stored for Agora and do not change your system PATH. Use Prompt if you want approval before downloads, or Manual when you maintain runtimes yourself.
Set memory conservatively
More memory is not always faster. Allocate enough for the pack while leaving several gigabytes for the operating system, launcher, browser, and graphics driver. Increase memory when logs show genuine heap pressure, not only because a pack feels slow.
Keep GC on Auto
Auto chooses the supported collector and flags for the selected Java runtime. On Java 21 or newer it can use Generational ZGC; older supported runtimes receive tuned G1GC behavior. The launch preview shows the effective result.
In depth
How the system actually behaves, and why, for readers who prefer the model to a recipe.
Override Java and JVM behavior per instance only when measurement or a specific compatibility requirement justifies departing from automatic policy.
After this you will be able to
- Inspect and override runtimes safely.
- Compare GC modes and pre-touch tradeoffs.
- Diagnose JVM flags from the effective launch preview.
Manage runtime precedence
Settings controls global runtime policy and discovered runtimes. Java & Args can override the executable for one instance. Inspect an override before saving it and clear it when the experiment ends so automatic compatibility checks regain control.
Choose GC intentionally
Auto is the default. Low-latency ZGC can reduce long pauses with a compatible modern Java. High-efficiency G1GC is an explicit manual profile. AlwaysPreTouch commits heap pages at startup, which can reduce later stutter but increases startup time and immediate memory pressure.
- Compare the same world, route, and workload.
- Track pause behavior, startup time, total memory, and stability.
- Do not combine collector flags from different GC families.
Use manual flags sparingly
Manual arguments can override safe defaults or duplicate computed flags. Read the launch preview and remove stale tuning copied from older Java versions. Use Allow incompatible Java override only for a controlled test with a restorable snapshot.
This guide is the same text Agora shows in its built-in Help & Guide, which is searchable and links directly to the screens it describes.