Low End PCs: Difference between revisions

From GT New Horizons
Content added Content deleted
m (added a tip to load the pack faster, and corrected the tip about the ram usage, according to https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/.)
m (→‎General tips: Adjusted wording of tip 2 to state MultiMC and Prism instead of just MultiMC)
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Guides]]
This is a big modpack with a lot of mods. Playing on a low performance PC (anything less than a sweet-spot PC from ~3 years ago) is not going to be an enjoyable experience. This page has some tips on making GregTech: New Horizons more tolerable on a potato PC.


GT New Horizons is a huge modpack with many mods. Playing on a low performance PC (anything less than a sweet-spot PC from ~3 years ago) is not going to be an enjoyable experience. This page has some tips on making GregTech: New Horizons more tolerable on a potato PC.
= Play using a separate server PC =
Setting up a server PC is outside the scope of this page, but using one will definitely help with performance. Offloading all the server lifting onto a spare computer, even if it is lower performance than your gaming PC, will definitely help with FPS.


{{Warning|title=Java 17+|text=The single biggest performance improvement you can do is make sure you use a launcher (Prism or MultiMC) that can run GT:NH with Java 17 or greater. Java 17+ has significantly improved garbage collection compared to Java 8.}}
Even setting up a separate server instance on the same PC can help improve performance since it is not sharing the same memory cap as the client.
== Playing using a separate server PC ==
Offloading all the server lifting onto a spare computer, even if it is lower performance than your gaming PC, will definitely help with FPS. See [[Server Setup]] for instructions on installing GT:NH as a server/client instance.


Even setting up a separate server instance on the same PC can help improve performance since it is not sharing the same memory cap as the client. You can also play on one of the official or unofficial servers.
= Disable the Splash Screen =
The forge splash screen does take CPU power during bootup. On slow PCs this can take 30 minutes. Disabling the splash screen
has been reported to shave a few minutes off that time. Edit config\splash.properties and set enabled=false to disable the screen. The boot window will be a Mojang/black window until it completes.


= Configuration changes =
= '''Configuration changes''' =
These changes will affect your game experience, but not in super significant ways.
These changes will affect your game experience, but not in super significant ways.


== World Chunkgen ==
=== World Chunkgen ===
Placing an ore in a chunk is an expensive operation. Reducing the ore density and shrinking the size of oreveins will reduce the number of operations. You can safely reduce densities to 2 or 3.
Placing an ore vein in a chunk can be an expensive operation. Reducing the ore density and shrinking the size of ore veins will reduce the number of operations. You can safely reduce densities to 2 or 3.


The same goes for the GT red granites, black granites, basalts, and marbles. They can cause significant world chunkgen lag - a 50 block diameter rock is more than 65k blocks to place. Reduce their frequency and size to help with lag.
The same goes for the GT red granites, black granites, basalts, and marbles. They can cause significant world chunkgen lag - a 50 block diameter rock is more than 65k blocks to place. Reduce their frequency and size to help with lag.


These settings can be found in config\gregtech\worldgeneration.cfg
These settings can be found in <code>config/gregtech/worldgeneration.cfg</code>


Railcraft places abyssal stone "geodes" frequently in some biomes, and quarried stones across most biomes. They can be disabled in config/railcraft/railcraft.cfg
Railcraft places abyssal stone "geodes" frequently in some biomes, and quarried stones across most biomes. They can be disabled in <code>config/railcraft/railcraft.cfg</code>


== JVM Arguments ==
= Exploration tips =
{{Warning|title=Not for Java 17+|text=Do not use these if you are using Java 17 or higher (and you should be) because they are already implemented. Use the settings recommended on the install page.}}
MC appears to request chunks 640 blocks away from the player. When exploring for new areas, try to minimize your speed and/or stop every 400-600 blocks to let the chunkgen catch up. If you are interested in oreveins, it's better to do a spiral out from an area vs a fast run to a new zone.
The following JVM arguments may be of interest. Sadly, not every setup is the same, so for maximum performance some fine-tuning might be needed.


You should set your minimum and maximum memory to the same amount, or close. GTNH recommends between 4GB and 6GB of RAM. Use more RAM with careful consideration and testing. Setting <code>-Xms</code> much lower then <code>-Xmm</code> can cause pauses whilst the garbage collector tries to get back down to the minimum.
Also, if you are in single player, try reducing your view distance. 10 is a good compromise between visibility and worldgen speed. Servers have a setting as well, <code>view-distance</code>.

= General tips =
1. Use JVM Args:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Argument !! Meaning
! Argument !! Meaning
|-
|-
| -d64|| forces 64 bit mode
| <code>-d64</code>|| Forces 64 bit mode
|-
|-
| <code>-XX:+UseG1GC</code>
| -XX:+DisableExplicitGC || Disables Addition garbage Collection
|Enforces the Use of the G1GC. The following arguments are based on this.
|-
|-
| <code>-XX:+UnlockExperimentalVMOptions</code>
| -XX:+UseConcMarkSweepGC|| Enables an algorythem that does the garbage Collection in the background.
|This enables the following options
|-
|-
| <code>-XX:+DisableExplicitGC</code>|| Disables explicit garbage collection (stops excess data collection from bad code)
| -XX:MaxGCPauseMillis=120 || Pause between garbage collection cicles in milliseconds. higher numbers will most likely cause more ram usage but less cpu usage
|-
|-
| <code>-XX:MaxGCPauseMillis=80</code>|| Pause between garbage collection cycles in milliseconds. Higher Numbers might cause Microlags and increased RAM Usage, lower numbers can cause lag as well. This can be changed a bit if you are desperate.
| -XX:+UseStringDeduplication || Every Text can exist only once. this lowers the ram usage
|-
|-
|<code>-Dsun.rmi.dgc.server.gcInterval=2147483646</code>
| -XX:+UseCompressedOops|| Enables Compression of pointers in Java 6+
|Disable Full GC runs to avoid frame stutter
|-
|-
| <code>-XX:G1NewSizePercent=20</code>
| -XX:+UseCodeCacheFlushing|| Reduces RAM usage by flushing already compiled, but unused classes
|This tunes the size of the space reserved for new objects. Since Java mods have a low object lifetime, this helps with GC performance.
|-
|-
|<code>-XX:G1ReservePercent=20</code>
| -XX:ParallelGCThreads=4|| Enables X threads for garbage collection. Set this to your CPU's real core count for best results.
|Reserve is what is kept free for the GC itself. If you have low total Memory (E.g. can not assign 6GB), try decreasing this to 10
|}
|}


== Exploration tips ==
2. Give 6G of ram to the modpack, or the maximum you can allocate without saturating your pc (the minimum amount of ram given should match the maximum amount of ram given, or you'll have unused memory)
Minecraft requests chunks up to 640 blocks away from the player. When exploring for new areas, try to minimize your speed and/or stop every 400-600 blocks to let the chunkgen catch up. Horses are convenient but can quickly outrun chuck loading. If you are interested in ore veins, it's better to do a spiral out from an area vs a fast run to a new zone. This also means the run back will be shorter.


Also, if you are in single player, try reducing your view distance. 10 is a good compromise between visibility and worldgen speed. Servers have a setting as well, <code>view-distance</code>.
3. install MultiMC and use that instead of a twich/technic launcher. ([https://gtnh.miraheze.org/wiki/Installing_and_Migrating Guide to using GTNH with multimc here])


== Use a different Java Virtual Machine ==
4. install OptiFine and remove fastcraft, on some computers OptiFine works better than fastcraft, on some others it the other way around.
By default most Minecraft servers use Oracle's JVM, Hotspot. The OpenJ9 JVM has been shown to significantly improve the performance of modded Minecraft. This user has found version 0.14.2 to work with Minecraft Forge. The new JVM must be installed and then pointed to, for instance in MultiMC under "Java" in "Settings" this means changing "Java path:" to e.g. "C:/Program Files/AdoptOpenJDK/jdk-8.0.212.04-openj9/bin/javaw.exe". If you encounter problems you can change this back to your original Java installation.


https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/tag/jdk8u212-b04_openj9-0.14.2
5. if you use OptiFine, then remove better loading screen, as it has been reported that better loading screen takes longer to load with OptiFine.


https://www.reddit.com/r/feedthebeast/comments/as6p87/java_vms_and_you_how_to_reduce_your_ram_and_cpu/
5. set the render distance to 2-10 chunks depending on your machine.


Some have had good luck with GraalVM - get the Java 8 version: https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.2.0
6. use "Advanced OpenGl" (standart minecraft option) if possible.


== General tips ==
7. Cap your FPS to 60.
# Give 6GB of RAM to the modpack, or the maximum you can allocate without saturating your PC (If you have 4 or less total, it will be hardly playable at all. With 8 total, assign 5-6GB). The minimum amount of RAM given should match the maximum amount of RAM given for optimal performance, to prevent overly aggressive garbage collection behavior. Allocating more than 8GB may cause issues, since the Java Garbage Collector gets worse with larger amounts of memory. Remember the rest of your system needs some left over memory as well.
= Use a different Java Virtual Machine =
# Install MultiMC/Prism Launcher and use that instead of a curse/twitch/technic launcher. ([https://gtnh.miraheze.org/wiki/Installing_and_Migrating Guide to using GTNH with MultiMC/Prism here])
By default most Minecraft servers use Oracle's JVM, Hotspot. The OpenJ9 JVM has been shown to significantly improve the performance of modded Minecraft. This user has found version 0.14.2 to work with Minecraft Forge. The new JVM must be installed and then pointed to, for instance in MultiMC under "Java" in "Settings" this means changing "Java path:" to e.g. "C:/Program Files/AdoptOpenJDK/jdk-8.0.212.04-openj9/bin/javaw.exe". If you encounter problems you can change this back to your original Java installation.
# Install OptiFine and tune it - the E7 version works better with shaders. Note that you will need to check the options.
# If you use OptiFine, then remove better loading screen, as it has been reported that better loading screen takes longer to load with OptiFine. Also turn off multi chunk loading (set it to default) or it may crash.
# Set the render distance to 2-10 chunks depending on your machine.
# Use "Advanced OpenGl" (standard Minecraft option) if possible (set it to Fast).
# Cap your FPS to 60, or lower if you struggle getting to 60.
# Turn off Texture and Terrain animation (helps tremendously on Macs).
#If your FPS crashes in a particular area, look for improvements. There's a quest in HV to get a Concealment Key to hide your drawers which may help, for example.
#Avoid these to ensure a high FPS:
##Place items on ground, in biblio labels, in item frames, etc, especially items with animations or enchanted items
##Drawers or barrels that display their contents. Use drawer keys to hide them.
##Anything that draw text, e.g. Nuclear Control information panels.


{{Template:Navbar GTNH}}
https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/tag/jdk8u212-b04_openj9-0.14.2
[[Category:Guides]][[Category:Troubleshooting]]

https://www.reddit.com/r/feedthebeast/comments/as6p87/java_vms_and_you_how_to_reduce_your_ram_and_cpu/

Latest revision as of 12:51, 1 March 2024

GT New Horizons is a huge modpack with many mods. Playing on a low performance PC (anything less than a sweet-spot PC from ~3 years ago) is not going to be an enjoyable experience. This page has some tips on making GregTech: New Horizons more tolerable on a potato PC.

Java 17+

The single biggest performance improvement you can do is make sure you use a launcher (Prism or MultiMC) that can run GT:NH with Java 17 or greater. Java 17+ has significantly improved garbage collection compared to Java 8.



Playing using a separate server PC

Offloading all the server lifting onto a spare computer, even if it is lower performance than your gaming PC, will definitely help with FPS. See Server Setup for instructions on installing GT:NH as a server/client instance.

Even setting up a separate server instance on the same PC can help improve performance since it is not sharing the same memory cap as the client. You can also play on one of the official or unofficial servers.

Configuration changes

These changes will affect your game experience, but not in super significant ways.

World Chunkgen

Placing an ore vein in a chunk can be an expensive operation. Reducing the ore density and shrinking the size of ore veins will reduce the number of operations. You can safely reduce densities to 2 or 3.

The same goes for the GT red granites, black granites, basalts, and marbles. They can cause significant world chunkgen lag - a 50 block diameter rock is more than 65k blocks to place. Reduce their frequency and size to help with lag.

These settings can be found in config/gregtech/worldgeneration.cfg

Railcraft places abyssal stone "geodes" frequently in some biomes, and quarried stones across most biomes. They can be disabled in config/railcraft/railcraft.cfg

JVM Arguments

Not for Java 17+

Do not use these if you are using Java 17 or higher (and you should be) because they are already implemented. Use the settings recommended on the install page.



The following JVM arguments may be of interest. Sadly, not every setup is the same, so for maximum performance some fine-tuning might be needed.

You should set your minimum and maximum memory to the same amount, or close. GTNH recommends between 4GB and 6GB of RAM. Use more RAM with careful consideration and testing. Setting -Xms much lower then -Xmm can cause pauses whilst the garbage collector tries to get back down to the minimum.

Argument Meaning
-d64 Forces 64 bit mode
-XX:+UseG1GC Enforces the Use of the G1GC. The following arguments are based on this.
-XX:+UnlockExperimentalVMOptions This enables the following options
-XX:+DisableExplicitGC Disables explicit garbage collection (stops excess data collection from bad code)
-XX:MaxGCPauseMillis=80 Pause between garbage collection cycles in milliseconds. Higher Numbers might cause Microlags and increased RAM Usage, lower numbers can cause lag as well. This can be changed a bit if you are desperate.
-Dsun.rmi.dgc.server.gcInterval=2147483646 Disable Full GC runs to avoid frame stutter
-XX:G1NewSizePercent=20 This tunes the size of the space reserved for new objects. Since Java mods have a low object lifetime, this helps with GC performance.
-XX:G1ReservePercent=20 Reserve is what is kept free for the GC itself. If you have low total Memory (E.g. can not assign 6GB), try decreasing this to 10

Exploration tips

Minecraft requests chunks up to 640 blocks away from the player. When exploring for new areas, try to minimize your speed and/or stop every 400-600 blocks to let the chunkgen catch up. Horses are convenient but can quickly outrun chuck loading. If you are interested in ore veins, it's better to do a spiral out from an area vs a fast run to a new zone. This also means the run back will be shorter.

Also, if you are in single player, try reducing your view distance. 10 is a good compromise between visibility and worldgen speed. Servers have a setting as well, view-distance.

Use a different Java Virtual Machine

By default most Minecraft servers use Oracle's JVM, Hotspot. The OpenJ9 JVM has been shown to significantly improve the performance of modded Minecraft. This user has found version 0.14.2 to work with Minecraft Forge. The new JVM must be installed and then pointed to, for instance in MultiMC under "Java" in "Settings" this means changing "Java path:" to e.g. "C:/Program Files/AdoptOpenJDK/jdk-8.0.212.04-openj9/bin/javaw.exe". If you encounter problems you can change this back to your original Java installation.

https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/tag/jdk8u212-b04_openj9-0.14.2

https://www.reddit.com/r/feedthebeast/comments/as6p87/java_vms_and_you_how_to_reduce_your_ram_and_cpu/

Some have had good luck with GraalVM - get the Java 8 version: https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.2.0

General tips

  1. Give 6GB of RAM to the modpack, or the maximum you can allocate without saturating your PC (If you have 4 or less total, it will be hardly playable at all. With 8 total, assign 5-6GB). The minimum amount of RAM given should match the maximum amount of RAM given for optimal performance, to prevent overly aggressive garbage collection behavior. Allocating more than 8GB may cause issues, since the Java Garbage Collector gets worse with larger amounts of memory. Remember the rest of your system needs some left over memory as well.
  2. Install MultiMC/Prism Launcher and use that instead of a curse/twitch/technic launcher. (Guide to using GTNH with MultiMC/Prism here)
  3. Install OptiFine and tune it - the E7 version works better with shaders. Note that you will need to check the options.
  4. If you use OptiFine, then remove better loading screen, as it has been reported that better loading screen takes longer to load with OptiFine. Also turn off multi chunk loading (set it to default) or it may crash.
  5. Set the render distance to 2-10 chunks depending on your machine.
  6. Use "Advanced OpenGl" (standard Minecraft option) if possible (set it to Fast).
  7. Cap your FPS to 60, or lower if you struggle getting to 60.
  8. Turn off Texture and Terrain animation (helps tremendously on Macs).
  9. If your FPS crashes in a particular area, look for improvements. There's a quest in HV to get a Concealment Key to hide your drawers which may help, for example.
  10. Avoid these to ensure a high FPS:
    1. Place items on ground, in biblio labels, in item frames, etc, especially items with animations or enchanted items
    2. Drawers or barrels that display their contents. Use drawer keys to hide them.
    3. Anything that draw text, e.g. Nuclear Control information panels.