JVM Arguments for Modded Minecraft (Updated 12/30/13)

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
And what do you think about this command for MCPC+ server to have a multi thread support, is it better to add this with MCPC+ for 2/3 thread or above

ParallelGCThreads only determines the number of threads used for the par new garbage collector and what ParallelCMSThreads is set to. The default is the number of cores your system has.

This has nothing to do with adding multithreading to Minecraft.
 

limalvin123

New Member
Jul 29, 2019
1
0
0
my big one i got lag ?
-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:NewRatio=4 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:MaxGCPauseMillis=20 -XX:GCPauseIntervalMillis=250 -XX:MaxGCMinorPauseMillis=7 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:+BindGCTaskThreadsToCPUs -XX:+TieredCompilation -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:Tier4CompileThreshold=2 -XX:Tier4BackEdgeThreshold=8 -XX:TieredCompileTaskTimeout=5000 -XX:Tier3DelayOn=50 -XX:Tier3DelayOff=25 -XX:+UseFastEmptyMethods -XX:-DontCompileHugeMethods -XX:+AlwaysCompileLoopMethods -XX:+CICompilerCountPerCPU -XX:+UseStringCache -XX:+UseNUMA -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=50 -XX:MaxGCMinorPauseMillis=7 -XX:+ExplicitGCInvokesConcurrent -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+BindGCTaskThreadsToCPUs -Xnoclassgc -XX:+OptimizeStringConcat -XX:+UseFastAccessorMethods -Xrs -XX:+AggressiveOpts -Xnoclassgc -DJINTEGRA_NATIVE_MODE -DJINTEGRA_COINIT_VALUE=0 -Dsun.io.useCanonCaches=false -Djline.terminal=jline.UnsupportedTerminal -XX:ThreadPriorityPolicy=42 -XX:CompileThreshold=3000 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxHeapFreeRatio=20 -XX:MinHeapFreeRatio=12 -XX:MaxPermSize=256m -Xms512m -Xmx2048m -XX:NewSize=100m -XX:SurvivorRatio=6 -XX:MaxTenuringThreshold=4 -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -Xloggc:GC.log -XX:parallelGCThreads=2 -XX:+TieredCompilation -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:+UnlockExperimentalVMOptions -XX:+UseAdaptiveGCBoundary -XX:+UseGCOverheadLimit -XX:+UseBiasedLocking -Xverify:none -XX:UseSSE=3 -XX:+UseThreadPriorities -Djava.net.preferIPv4Stack=true -XX:+UseStringCache -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:parallelGCThreads=3 -XX:MaxGCPauseMillis=5 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Xnoclassgc -XX:UseSSE=3 -XX:+UseLargePages -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedStrings -XX:+OptimizeStringConcat -XX:permSize=1024m -XX:ReservedCodeCacheSize=2048m -XX:ThreadPriorityPolicy=42 -XX:+TieredCompilation -XX:TargetSurvivorRatio=90 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:+UnlockExperimentalVMOptions -XX:+UseBiasedLocking -XX:UseSSE=3 -XX:+UseCodeCacheFlushing -XX:+UseThreadPriorities -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -XX:+ReduceSignalUsage -XX:+UseInterpreter -XX:+UseFastEmptyMethods -XX:+UseSharedSpaces -XX:AllocatePrefetchStyle=1 -XX:+AlwaysCompileLoopMethods -XX:SharedReadOnlySize=30m -XX:+UseConcMarkSweepGC -XX:+RewriteFrequentPairs -XX:+OptimizeStringConcat -XX:+CMSCleanOnEnter -XX:+UseSplitVerifier -XX:+UseInlineCaches -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -XX:+UseLargePages -XX:+UseStringCache -XX:+OptimizeStringConcat -XX:+UseGCOverheadLimit -XX:+UseBiasedLocking -Xnoclassgc -Xverify:none -XX:UseSSE=3 -XX:+UnlockExperimentalVMOptions -XX:+UseAdaptiveGCBoundary -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+CMSIncrementalMode -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+PrintTenuringDistribution -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSPermGenSweepingEnabled -XX:+CMSIncrementalMode -XX:+CMSPermGenSweepingEnabled -XX:+CMSIncrementalMode -XX:+PrintGCDateStamps -XX:MaxTenuringThreshold=15 -XX:parallelGCThreads=4 -XX:+CMSParallelRemarkEnabled -XX:parallelCMSThreads=2 -XX:+CMSScavengeBeforeRemark -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:+UsePerfData -XX:+PerfDataSaveToFile -XX:+PerfDisableSharedMem -XX:+UseCompressedStrings -XX:+HeapDumpOnOutOfMemoryError -XX:+AlwaysCompileLoopMethods -XX:-DontCompileHugeMethods -XX:Tier4BackEdgeThreshold=8 -XX:TieredCompileTaskTimeout=5000 -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:Tier3DelayOn=50 -XX:Tier3DelayOff=25 -XX:+CICompilerCountPerCPU -XX:+UseMembar -XX:+UseCompressedStrings -XX:+UsePerfData -XX:GCHeapFreeLimit=40 -XX:+ForceTimeHighResolution -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:MaxGCPauseMillis=40 -XX:GCPauseIntervalMillis=150 -XX:MaxGCMinorPauseMillis=7 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:+TieredCompilation -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:Tier4CompileThreshold=2 -XX:Tier4BackEdgeThreshold=8 -XX:TieredCompileTaskTimeout=1000 -XX:+UseFastEmptyMethods -XX:-DontCompileHugeMethods -XX:+AlwaysCompileLoopMethods -XX:+CICompilerCountPerCPU -XX:+UseCompressedStrings -XX:+UseBiasedLocking -Xincgc -XX:MaxGCPauseMillis=10 -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:+CMSParallelRemarkEnabled -XX:parallelGCThreads=10 -Djava.net.preferIPv4Stack=true -XX:UseSSE=4 -XX:TieredCompileTaskTimeout=5000 -XX:Tier3DelayOn=50 -XX:Tier3DelayOff=25 -XX:+UseFastEmptyMethods -XX:-DontCompileHugeMethods -XX:+AlwaysCompileLoopMethods -XX:CMSInitiatingOccupancyFraction=50 -XX:+BindGCTaskThreadsToCPUs -XX:+TieredCompilation -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:Tier4CompileThreshold=2 -XX:Tier4BackEdgeThreshold=8 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:MaxTenuringThreshold=4 -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+DisableExplicitGC XX:-DontCompileHugeMethods
 
Last edited by a moderator:

acollins41198

New Member
Jul 29, 2019
8
0
0
It appears that these arguments are not the best option in some cases. I currently play on a TestPackPleaseIgnore server and these arguments are much too low for what the pack demands. While it is obviously not the best I usually run the pack using 4GB and no jvm arguments.

Now, I'm certain these arguments are great for all of the official FTB packs but something as huge as TPPI (167 mods, Gregtech among them) will not run these arguments very well. Would it be possible for you to create arguments for a more demanding amount of mods?
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
It appears that these arguments are not the best option in some cases. I currently play on a TestPackPleaseIgnore server and these arguments are much too low for what the pack demands. While it is obviously not the best I usually run the pack using 4GB and no jvm arguments.

Now, I'm certain these arguments are great for all of the official FTB packs but something as huge as TPPI (167 mods, Gregtech among them) will not run these arguments very well. Would it be possible for you to create arguments for a more demanding amount of mods?

You realize Monster is bigger, and has Rotarycraft and Reactorcraft...

Besides the point. These arguments are no longer "optimal" for what is out there. "Optimal" is subjective though, as its not always the same on all computers.
For example, I only run 3 arguments in my MC installation. It's optimal for me. The OP is designed for more midrange to low range specs, but are now a little outdated.
 

Nikkosyia

New Member
Jul 29, 2019
2
0
0
Not running any mods.

Using Default Mincraft launcher 1.3.10

Java Version 7 Update 51 (build 1.7.0_51-b13)

Clean install of Forge version 1.6.4-Forge9.11.1.965

Unable to modified the -Xms and -Xmx values, Minecraft is only launching under the following values.

Code:
-Xms1G -Xmx1G XX:PermSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC

Changing the values between G and Mb have no effect, same resulting error.

IE: Cannot change to
Code:
-Xmx1024m -Xms1024m
Code:
-Xms6G -Xmx6G
Code:
-Xms8192m -Xmx8192m
or any other value equal or under my total RAM (minus Idle status of 1.70)



Code:
[00:09:20 INFO]: Client> Invalid initial heap size: -Xms4G

[00:09:20 INFO]: Client> The specified size exceeds the maximum representable size.

[00:09:20 ERROR]: Game ended with bad state (exit code 1)

m4N2p5h.png
 
Last edited:

TehMaddog

New Member
Jul 29, 2019
2
0
0
I Just did a clean install of Forge and i have no other mods installed for Minecraft.
The install i did for Forge was forge-1.6.4-9.11.1.965.
My JVM argument is only allowing 1G instead of anything higher.
I have Tried -Xms1536 -Xmx1536 -XX:permSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC as my line but it proved unsuccessful and only -Xms1G -Xmx1G -XX:permSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC Works.
 
Last edited:

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
Not running any mods.

Using Default Mincraft launcher 1.3.10

Java Version 7 Update 51 (build 1.7.0_51-b13)

Clean install of Forge version 1.6.4-Forge9.11.1.965

Unable to modified the -Xms and -Xmx values, Minecraft is only launching under the following values.

Code:
-Xms1G -Xmx1G XX:PermSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC

Changing the values between G and Mb have no effect, same resulting error.

IE: Cannot change to
Code:
-Xmx1024m -Xms1024m
Code:
-Xms6G -Xmx6G
Code:
-Xms8192m -Xmx8192m
or any other value equal or under my total RAM (minus Idle status of 1.70)



Code:
[00:09:20 INFO]: Client> Invalid initial heap size: -Xms4G

[00:09:20 INFO]: Client> The specified size exceeds the maximum representable size.

[00:09:20 ERROR]: Game ended with bad state (exit code 1)

m4N2p5h.png
I Just did a clean install of Forge and i have no other mods installed for Minecraft.
The install i did for Forge was forge-1.6.4-9.11.1.965.
My JVM argument is only allowing 1G instead of anything higher.
I have Tried -Xms1536 -Xmx1536 -XX:permSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC as my line but it proved unsuccessful and only -Xms1G -Xmx1G -XX:permSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC Works.

Make sure you have the 64 bit version of j7u51 installed and not the 32bit.
 

Nikkosyia

New Member
Jul 29, 2019
2
0
0
Uninstalled Java, Ran CCleaner, installed 64, installed offline x86.
Logged in, and running.
Thanks!
 

TehMaddog

New Member
Jul 29, 2019
2
0
0
Got it working with a clean install of Java 64 bit and Offline x86 and a miss type from the JVM command.
Thanks.
 

acollins41198

New Member
Jul 29, 2019
8
0
0
You realize Monster is bigger, and has Rotarycraft and Reactorcraft...

Besides the point. These arguments are no longer "optimal" for what is out there. "Optimal" is subjective though, as its not always the same on all computers.
For example, I only run 3 arguments in my MC installation. It's optimal for me. The OP is designed for more midrange to low range specs, but are now a little outdated.

Sorry, I was told by someone that monster only had around 140 mods (I hadn't actually played on it myself). I'll play around with my own arguments then and see what I can improve for myself.
 

clarity

New Member
Jul 29, 2019
14
0
0
I'd like to say I have not been happy with the new 1.6.4 mods at all. By forcing people to be 64 bit, you cut 'a lot' of people out from allowing to use your system. Not everyone has state of the art new computer equipment, and not everyone can run out and spend 400 dollars just to use your software. This is unfair for a lot of people who's enjoyed your system for a long time, and are now forced to stay in the older system because of it. Are you trying to reduce your customer base? I thought your idea was to widen it...
 

Wagon153

New Member
Jul 29, 2019
3,148
-3
1
I'd like to say I have not been happy with the new 1.6.4 mods at all. By forcing people to be 64 bit, you cut 'a lot' of people out from allowing to use your system. Not everyone has state of the art new computer equipment, and not everyone can run out and spend 400 dollars just to use your software. This is unfair for a lot of people who's enjoyed your system for a long time, and are now forced to stay in the older system because of it. Are you trying to reduce your customer base? I thought your idea was to widen it...
Let me respond to this. It is not the fault of FTB, they in fact have a modpack for lighter computers. But for the bigger packs, the mods inside are ones that everybody likes. Unfortunately, they are also heavy on computers. The modders try their best, but there is only so much they can do.
 

TomeWyrm

New Member
Jul 29, 2019
898
1
1
I'd like to say I have not been happy with the new 1.6.4 mods at all. By forcing people to be 64 bit, you cut 'a lot' of people out from allowing to use your system. Not everyone has state of the art new computer equipment, and not everyone can run out and spend 400 dollars just to use your software. This is unfair for a lot of people who's enjoyed your system for a long time, and are now forced to stay in the older system because of it. Are you trying to reduce your customer base? I thought your idea was to widen it...

There are mods/mod packs that require 64 bit OS's? I didn't know they could. I am skeptical that any minecraft mod could require 64-bit. Now the new FTB launcher, that's another story. But even there, I think you're a bit biased on the whole "lots of people being cut out" angle... the number of people "cut out" by not having a 64-bit computer might be a very large number, but that doesn't mean much when compared to the number of people that CAN use 64 bit. Would you suggest they spend resources supporting 1% (or less) of the userbase instead of something else? Like making sure the packs are out sooner, or squashing bugs in them or the launcher?

If you can't play FTB packs on your computer, like at all? That's a problem, bring it up with the support staff.

Can you not play an FTB pack at an "acceptable" framerate? That is something that can easily be worked around, by simple modifications to playstyle, by replacing (or removing) a mod, or by simply playing on peaceful with lowered graphics settings. I routinely play at less than 10FPS when I'm testing out new mods, mod interactions, and especially "how long until I break this" builds in my private TOOMANYMODS pack or when I go into my power plant in my single player world (too many tile entities mostly).
 

keybounce

New Member
Jul 29, 2019
1,925
0
0
The FTB launcher does not require 64 bit systems.

On windows, the largest heap that a 32 bit java process can allocate is, I believe, 1500m. Some mods use memory; some mods leak memory. There is an annoying leak on dimension changes, for example. I believe that some linux systems can do 2000m; my old Apple J6 could.

Some people confuse heap allocation (for data) with perm allocation (for code), and blame that (incorrectly) as the 32/64 bit issue.

Magic Farm will run quite nicely in 32 bits most of the time. I do occasionally find very high memory usage, but I have never yet managed to track down what causes it -- every test hypothesis so far has failed. The only thing that has been consistent for me -- a memory leak rendering AE machines (either the drive or the controller) cannot be duplicated on Jaded's system, and a potential flaw in my testing method was pointed out to me, so it might in fact be something else in the distance, out of sight but still in the world.
 

clarity

New Member
Jul 29, 2019
14
0
0
Okay, Tome...please go back to message number 1 where it says this: Updated 12/30/13
**Please Note**
The following performance tweaks REQUIRE
a 64bit OS, Java7u45 (or above), and a minimum of 3GBs of free RAM.
I will also continue to keep these updated
if I find better ways to increase performance.

So, yes...all the 1.6.4 ftb mod packs 'require' 64 bit. If they didn't, I wouldn't be complaining.

Vagon...I guess I just don't understand why it wasn't originally required for 1.4.7, and 1.5.2 mods. Yet, now 1.6.4 mods require it. There hasn't been that great a change in the mod packs. They still have IC2, Thaumcraft, Buildcraft, etc. Why did this upgrade require that much more memory, in compared to the other mod packs, that they now require 64 bit?

Did something greatly change in vanilla Minecraft that needed it? I know Minecraft themselves don't require it, despite the add-on of new biomes. And yes I understand ftb has a great deal more connected to them compared to vanilla, but that brings me back to my example of when they made Unleashed. That has a great deal of mods in it, but it doesn't require 64 bit. Why? What's the difference besides subtle tweaks to mods to make them require so much more? I guess i just don't understand.
 

Henry Link

Popular Member
Dec 23, 2012
2,601
553
128
USA - East Coast
Okay, Tome...please go back to message number 1 where it says this: Updated 12/30/13
**Please Note**
The following performance tweaks REQUIRE
a 64bit OS, Java7u45 (or above), and a minimum of 3GBs of free RAM.
I will also continue to keep these updated
if I find better ways to increase performance.

So, yes...all the 1.6.4 ftb mod packs 'require' 64 bit. If they didn't, I wouldn't be complaining.

I think you missed something here. Yes the JVM arguments in that post require 64bit java (that is what those arguments are designed for). However, that isn't a requirement of FTB. Some of the 1.6.4 packs will run on 32 bit java. But, it is recommended that the heavier mod packs like Monster and DW20 use 64 bit due to the increased memory usage required.
 

TomeWyrm

New Member
Jul 29, 2019
898
1
1
You might want to re-read that yourself.


Updated 12/30/13
**Please Note**
The following performance tweaks REQUIRE
a 64bit OS, Java7u45 (or above), and a minimum of 3GBs of free RAM.
I will also continue to keep these updated
if I find better ways to increase performance.

Special thanks to Keybounce for his research and ideas

THESE PERFORMANCE TWEAKS require 64 bit java. And if you know what you're doing, you can edit them to not require 64-bit java. No point to it though, these are designed to trade ram usage for performance, and 32-bit systems can't access enough ram to make it worth using in the way Eyamaz is using it

The packs still easily run happily on 32-bit systems.
 

clarity

New Member
Jul 29, 2019
14
0
0
Tome...either I'm reading you totally wrong, or you just double contradicted yourself. :p

You first state if I know what I'm doing, I can edit it so as not to require 64 bit. Then you tell me not to bother, because 32 bit can't access enough ram. Then you turn around again and say that packs can run happily on 32 bit system. Whatever you're taking, I want some. ;)

Well that's odd Henry, because everything I've tried (except for Light) which include Horizons and Tech World either fails altogether, or I finally make it to my first screen and it dies from memory overload. i have a feeling these are all basically meant to be user friendly towards 64 bit.

And you listed the two main packs everyone wants to play. It's like telling me during 1.5 "Well, you can't use Unleashed and DW, but the rest are okay." But that's the two main ones I want to play, and now unless I go out and buy myself another machine, that's not going to happen. Again, I never had this problem with ftb before. I thought this was supposed to be an easy way to get a crap load of cool mods without having to try to manually add it on my machine. I just run and play. But now it seems I wont be able to get it anymore...just their old stuff. it....sucks. :(