my kids play minecraft on fairly basic laptops (i3 CPU) that both have 8 Gb of RAM (one is windows 7, the other windows 8.1) - but most of the RAM (> 50%) is just not used. Seems wasteful as I'm guessing the whole thing would run faster and smoother if I could coax windows into loading more of the application into this unused RAM. Any ideas?
my simple-minded approach was: if I can load more or all of the application into ram, then the processor accesses ram rather than the HDD in running the application (much faster access), ignoring access to system programs etc. Is this not correct? Or: is the processor still accessing application binaries off the HDD, so the key bottleneck is not being reduced? If so, maybe setting up a ramdrive to use the spare memory and installing minecraft there will have more impact?
Minecraft is tricky, and unpredictable when it comes to performance. The bottleneck is the graphics card you have, and processor, RAM has hardly any impact, if at all. You can run Minecraft with all of your RAM allocated to it, and it will still have mediocre performance, if your GPU/CPU combo is not up to par.
Fun fact, Minecraft requires a minimum of 256MB allocated to run, I usually run it with this amount as well, and can achieve a stable 60fps.
But in any case what I said is based on the many years I've had dealing with this game, so if you wish to follow the guide, then by all means! Experiment with what works with you.
I don't see much correlation between memory allocated and performance myself, within limits; insufficient memory causes the game to crash, not just lag or run slower, while too much also causes it to crash (I have a 32 bit OS so I can't allocate more than about 1 GB, and even that can cause out of memory errors (ironically) due to the Java process running out of memory, as it can only use up to 2 GB total, including native libraries like OpenGL; note that the crashes are different for both cases, one cause the game to lag, freeze, then close with "out of memory: Java heap space" as the cause and the other gives a "Minecraft has run out of memory" screen despite F3 showing plenty of free memory).
That said, more memory does increase the time between full garbage collections; with 768 MB allocated I see one every 30-60 minutes during normal gamplay, about twice as often but shorter in duration with 512 MB. This assumes the default garbage collector, which simply waits until used memory hits 100% before running; the default JVM arguments in the launcher enable an incremental GC, which causes stuttering when it runs which is much more objectionable than a 1/2-1 second pause. Note that in any case the GC has to eventually match the rate at which the game is allocating new objects, so allocating a huge amount of memory can forestall this but not indefinitely, and as mentioned it takes longer to go through more memory.
It is important to allocate more memory though if you use higher render distances (the game already only lets you go up to 16 chunks in vanilla unless you allocate 2 GB; I say vanilla since Optifine lets you get around this); the memory usage roughly goes up by the square of the render distance since most of the memory the game uses is used to store chunks.
Remember also to leave plenty of free system memory; with 768 MB allocated (all at once as I use -Xms768M) the Java process uses around 1.3-1.4 GB of memory, leaving about 1 GB free (out of 3 GB total); this free memory is used by Windows (and most other OSs) as a disk cache, which can speed up chunk loading after the files are first loaded (chunk loading when moving into new areas is mostly dependent on how fast your CPU is).
-Xmn means Java allocates an EXTRA 768mb for the young generation. -Xms is the beginning allocation state, and -Xmx is the total memory available for allocation. Since you are running a 32 bit OS, TheMasterCaver, Java GC is different. For a 64bit version of WIndows 8.1, I see GC every 20-30 minutes. Just sharing a tidbit of information.
Rollback Post to RevisionRollBack
Revised PC Build Specs
CPU: Intel Core i7-5930K 6-core @ 4.2 GHz
CPU Cooler: NZXT Kraken X61 106.1 CFM
Thermal Compound: Arctic Silver 5
Motherboard: Asus X99-DELUXE ATX LGA2011-3
RAM: Corsair Vengeance LPX 32GB (4GBx8) DDR4-2666 MHz
SSD: Samsung 850 Pro Series 256GB
SSD 2: Samsung 850 EVO-Series 1TB
Graphics Cards: Gigabyte GeForce GTX 980 Ti 6GB (2-Way SLI)
Case: Corsair 750D ATX Full Tower
PSU: EVGA SuperNOVA 1300 G2 1300W
OS: Windows 8.1 Pro x64 (Will upgrade to Windows 10)
Displays: x3 Asus VG248QE 24-Inch @ 144 Hz
Keyboard: Razer Blackwidow Chroma
Mouse: Logitech G502 Proteus Core
Headset: Astro A50 Wireless
Xmn does not allocate EXTRA anything. this controls the size of the subset of the heap used for the new generation. So the max heap size (Xmx) minus the new gen size (Xmn) tells you how much space you have for oldgen
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Hi,
my kids play minecraft on fairly basic laptops (i3 CPU) that both have 8 Gb of RAM (one is windows 7, the other windows 8.1) - but most of the RAM (> 50%) is just not used. Seems wasteful as I'm guessing the whole thing would run faster and smoother if I could coax windows into loading more of the application into this unused RAM. Any ideas?
Thanks
Doh! just found http://www.minecraftforum.net/forums/support/unmodified-minecraft-client/tutorials-and-faqs/1871637-tutorial-allocate-more-memory-for-minecraft - guess I'll start with that.
I'll give you a quick tutorial.
1. Load up the minecraft launcher.
2. In the bottom left corner of the launcher, click "edit profile".
3. Look for java arguments on the settings screen, and check it off. Then replace the current one with this:
-Xmx(number)G
[Where it says (number), insert the amount of gigabytes of ram you want it to take up. Obviously remove the parenthesis.
4. Click "save profile".
Add me on steam!
Random junk is random:
A few of my suggestions and a personal favorite suggestions. More neat-o suggestions in my bio.
Thanks megabyte!
-
View User Profile
-
View Posts
-
Send Message
Retired StaffMore RAM allocated does not mean it'll give it a performance boost, just going to point that out. It only grabs however much it needs.
But, with more RAM allocation, it makes more RAM available for use, so more CPU intensive tasks run quicker.
CPU Cooler: NZXT Kraken X61 106.1 CFM
Thermal Compound: Arctic Silver 5
Motherboard: Asus X99-DELUXE ATX LGA2011-3
RAM: Corsair Vengeance LPX 32GB (4GBx8) DDR4-2666 MHz
SSD: Samsung 850 Pro Series 256GB
SSD 2: Samsung 850 EVO-Series 1TB
Graphics Cards: Gigabyte GeForce GTX 980 Ti 6GB (2-Way SLI)
Case: Corsair 750D ATX Full Tower
PSU: EVGA SuperNOVA 1300 G2 1300W
OS: Windows 8.1 Pro x64 (Will upgrade to Windows 10)
Displays: x3 Asus VG248QE 24-Inch @ 144 Hz
Keyboard: Razer Blackwidow Chroma
Mouse: Logitech G502 Proteus Core
Headset: Astro A50 Wireless
Thanks cestislife and Jiggy (like your rig!),
my simple-minded approach was: if I can load more or all of the application into ram, then the processor accesses ram rather than the HDD in running the application (much faster access), ignoring access to system programs etc. Is this not correct? Or: is the processor still accessing application binaries off the HDD, so the key bottleneck is not being reduced? If so, maybe setting up a ramdrive to use the spare memory and installing minecraft there will have more impact?
Thanks
-
View User Profile
-
View Posts
-
Send Message
Retired StaffMinecraft is tricky, and unpredictable when it comes to performance. The bottleneck is the graphics card you have, and processor, RAM has hardly any impact, if at all. You can run Minecraft with all of your RAM allocated to it, and it will still have mediocre performance, if your GPU/CPU combo is not up to par.
Fun fact, Minecraft requires a minimum of 256MB allocated to run, I usually run it with this amount as well, and can achieve a stable 60fps.
But in any case what I said is based on the many years I've had dealing with this game, so if you wish to follow the guide, then by all means! Experiment with what works with you.
Most users report best performance @ 3Gb of RAM for an 8GB card.
CPU Cooler: NZXT Kraken X61 106.1 CFM
Thermal Compound: Arctic Silver 5
Motherboard: Asus X99-DELUXE ATX LGA2011-3
RAM: Corsair Vengeance LPX 32GB (4GBx8) DDR4-2666 MHz
SSD: Samsung 850 Pro Series 256GB
SSD 2: Samsung 850 EVO-Series 1TB
Graphics Cards: Gigabyte GeForce GTX 980 Ti 6GB (2-Way SLI)
Case: Corsair 750D ATX Full Tower
PSU: EVGA SuperNOVA 1300 G2 1300W
OS: Windows 8.1 Pro x64 (Will upgrade to Windows 10)
Displays: x3 Asus VG248QE 24-Inch @ 144 Hz
Keyboard: Razer Blackwidow Chroma
Mouse: Logitech G502 Proteus Core
Headset: Astro A50 Wireless
I don't see much correlation between memory allocated and performance myself, within limits; insufficient memory causes the game to crash, not just lag or run slower, while too much also causes it to crash (I have a 32 bit OS so I can't allocate more than about 1 GB, and even that can cause out of memory errors (ironically) due to the Java process running out of memory, as it can only use up to 2 GB total, including native libraries like OpenGL; note that the crashes are different for both cases, one cause the game to lag, freeze, then close with "out of memory: Java heap space" as the cause and the other gives a "Minecraft has run out of memory" screen despite F3 showing plenty of free memory).
That said, more memory does increase the time between full garbage collections; with 768 MB allocated I see one every 30-60 minutes during normal gamplay, about twice as often but shorter in duration with 512 MB. This assumes the default garbage collector, which simply waits until used memory hits 100% before running; the default JVM arguments in the launcher enable an incremental GC, which causes stuttering when it runs which is much more objectionable than a 1/2-1 second pause. Note that in any case the GC has to eventually match the rate at which the game is allocating new objects, so allocating a huge amount of memory can forestall this but not indefinitely, and as mentioned it takes longer to go through more memory.
It is important to allocate more memory though if you use higher render distances (the game already only lets you go up to 16 chunks in vanilla unless you allocate 2 GB; I say vanilla since Optifine lets you get around this); the memory usage roughly goes up by the square of the render distance since most of the memory the game uses is used to store chunks.
Remember also to leave plenty of free system memory; with 768 MB allocated (all at once as I use -Xms768M) the Java process uses around 1.3-1.4 GB of memory, leaving about 1 GB free (out of 3 GB total); this free memory is used by Windows (and most other OSs) as a disk cache, which can speed up chunk loading after the files are first loaded (chunk loading when moving into new areas is mostly dependent on how fast your CPU is).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
-Xmn means Java allocates an EXTRA 768mb for the young generation. -Xms is the beginning allocation state, and -Xmx is the total memory available for allocation. Since you are running a 32 bit OS, TheMasterCaver, Java GC is different. For a 64bit version of WIndows 8.1, I see GC every 20-30 minutes. Just sharing a tidbit of information.
CPU Cooler: NZXT Kraken X61 106.1 CFM
Thermal Compound: Arctic Silver 5
Motherboard: Asus X99-DELUXE ATX LGA2011-3
RAM: Corsair Vengeance LPX 32GB (4GBx8) DDR4-2666 MHz
SSD: Samsung 850 Pro Series 256GB
SSD 2: Samsung 850 EVO-Series 1TB
Graphics Cards: Gigabyte GeForce GTX 980 Ti 6GB (2-Way SLI)
Case: Corsair 750D ATX Full Tower
PSU: EVGA SuperNOVA 1300 G2 1300W
OS: Windows 8.1 Pro x64 (Will upgrade to Windows 10)
Displays: x3 Asus VG248QE 24-Inch @ 144 Hz
Keyboard: Razer Blackwidow Chroma
Mouse: Logitech G502 Proteus Core
Headset: Astro A50 Wireless
Xmn does not allocate EXTRA anything. this controls the size of the subset of the heap used for the new generation. So the max heap size (Xmx) minus the new gen size (Xmn) tells you how much space you have for oldgen