См. http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html
-Xms и -Xmx задают минимальный и максимальный размеры кучи.Hotspot рекламируется как особенность, поэтому размер кучи ограничен, чтобы не допустить разрушения вашей системы.Поэтому, как только вы определите максимальный объем памяти, который необходим вашему приложению, вы можете ограничить его, чтобы не допустить воздействия мошеннического кода на другие приложения.Используйте эти флаги, например -Xmx512M, где M обозначает MB.Если вы не включаете его, вы указываете байты.Несколько флагов используют этот формат.Вы также можете получить незначительное повышение производительности при запуске, установив минимальное значение выше, так как не нужно сразу увеличивать кучу.
-XX: MaxPermSize = ### M устанавливает максимальный размер «постоянной генерации»,Hotspot необычен тем, что несколько типов данных хранятся в «постоянной генерации», отдельной области кучи, которая редко (или никогда) не собирается мусором.Список размещенных данных perm-gen немного нечеткий, но обычно он содержит такие вещи, как метаданные класса, байт-код, интернированные строки и т. Д. (И это, безусловно, зависит от версии Hotspot).Поскольку это поколение редко или никогда не собирается, вам может потребоваться увеличить его размер (или включить перманентное сканирование с помощью пары других флагов).В частности, в JRuby мы генерируем много байт-кода адаптера, который обычно требует больше места для перманента.