title: Default values for Xmx, Xms, MaxPermSize on non-server-class machines
body: <p>What are the default values for the following options in Java 6 on a <em>non-server-class machine</em>?</p>
  
  <ul>
  <li>-Xmx</li>
  <li>-XX:MaxPermSize</li>
  </ul>
  
  <p>Oracle's <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/vm/gc-ergonomics.html" rel="noreferrer">documentation</a> states that:</p>
  
  <blockquote>
    <p>On server-class machines running the server VM, the garbage collector (GC) has changed from the previous serial collector (-XX:+UseSerialGC) to a parallel collector (-XX:+UseParallelGC).</p>
  </blockquote>
  
  <p>and</p>
  
  <blockquote>
    <p>On server-class machines running either VM (client or server) with the parallel garbage collector (-XX:+UseParallelGC) the initial heap size and maximum heap size have changed</p>
  </blockquote>
  
  <p>The page doesn't describe the defaults for non-server-class machines, only that, for example, the initial heap size is "a reasonable minimum". Looking at <a href="http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html" rel="noreferrer">the 'man page'</a> for the <code>java</code> command there is the following against <code>-Xms</code>:</p>
  
  <blockquote>
    <p>The default value is chosen at runtime based on system configuration </p>
  </blockquote>