I'm trying to figure out the difference between the two since my eclipse sometimes experiences a "out of memory" error. I've got a lot of memory at my disposal so I'm trying to figure out which to increase or decrease and what they do to get it working properly. Here are the contents of the file:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20130807-1835
-clean
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xms256m
-Xmx2000m
When you get an error, you need to read it carefully because often every word matters. For example, when you get an OOME, you will see some words as a message. This is important because there is many reasons you can get an OOME and two of the most common ones are;
-Xmx
-XX:MaxPermSpace=
Note: Java 8 doesn't have a "Perm Gen" it has a "Metaspace" which does the same thing, but works rather differently and I suspect they renamed it to avoid confusion.
There are other reasons for this error such as using too much direct memory, or being unable to create a new thread but these are relatively rare.
If you take away one point for this answer is to read the entire message, not just the error itself, and if you don't know what it means, often Google does ;)
I say this because often a question is posted on StackOverflow regarding an "error occurred" and the first comment is "what error occurred" because as soon at it is posted the problem is obvious (to someone who knows what it means) what the problem is most of the time. So when you read an error message you need to assume its trying to tell you something, but you don't know what it means and yes I see new error messages which I don't know what they mean quite often