Low End PCs
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.
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.
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.
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.
These changes will affect your game experience, but not in super significant ways.
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.
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
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.
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,
1. Use JVM Args:
|-d64||forces 64 bit mode|
|-XX:+DisableExplicitGC||Disables Addition garbage Collection|
|-XX:+UseConcMarkSweepGC||Enables an algorythem that does the garbage Collection in the background.|
|-XX:MaxGCPauseMillis=120||Pause between garbage collection cicles in milliseconds. higher numbers will most likely cause more ram usage but less cpu usage|
|-XX:+UseStringDeduplication||Every Text can exist only once. this lowers the ram usage|
|-XX:+UseCompressedOops||Enables Compression of pointers in Java 6+|
|-XX:+UseCodeCacheFlushing||Reduces RAM usage by flushing already compiled, but unused classes|
|-XX:ParallelGCThreads=4||Enables X threads for garbage collection. Set this to your CPU's real core count for best results.|
2. set the minimum Ram usage to 1G and maximum to 6G.
3. install MultiMC and use that instead of a twich/technic launcher. (Guide to using GTNH with multimc here)
4. install OptiFine and remove fastcraft, on some computers OptiFine works better than fastcraft, on some others it the other way around.
5. set the render distance to 2-10 chunks depending on your machine.
6. use "Advanced OpenGl" (standart minecraft option) if possible.
7. Cap your FPS to 60.
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.