Memória alocada para o Java

8 respostas
saoj

Quanto de memória a MVJ pega por default do SO ???

E como posso aumentar isso ??? Tem uns parâmetros pra isso né?

8 Respostas

cv1

O manual mandou lembrancas, disse que ta com saudades :)

$ java -help
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options  ## <<<<---------- AHA!
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

Vejamos o que tem nas opcoes -X na minha JVM (Sun 1.5):

$ java -X -help
    -Xmixed           mixed mode execution (default)
    -Xint             interpreted mode execution only
    -Xbootclasspath:<directories and zip/jar files separated by ;>
                      set search path for bootstrap classes and resources
    -Xbootclasspath/a:<directories and zip/jar files separated by ;>
                      append to end of bootstrap class path
    -Xbootclasspath/p:<directories and zip/jar files separated by ;>
                      prepend in front of bootstrap class path
    -Xnoclassgc       disable class garbage collection
    -Xincgc           enable incremental garbage collection
    -Xloggc:<file>    log GC status to a file with time stamps
    -Xbatch           disable background compilation
    -Xms<size>        set initial Java heap size       ## <<<<---------- AHA!
    -Xmx<size>        set maximum Java heap size     ## <<<<---------- AHA!
    -Xss<size>        set java thread stack size
    -Xprof            output cpu profiling data
    -Xfuture          enable strictest checks, anticipating future default
    -Xrs              reduce use of OS signals by Java/VM (see documentation)
    -Xcheck:jni       perform additional checks for JNI functions
    -Xshare:off       do not attempt to use shared class data
    -Xshare:auto      use shared class data if possible (default)
    -Xshare:on        require using shared class data, otherwise fail.

The -X options are non-standard and subject to change without notice.
abstract

Veja se isso te ajuda camarada

http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp

http://weblogs.java.net/blog/aiqa/archive/2005/04/jvm_memory_usag.html

C

agora mudar essa capacidade dinamicamente via soft não da ne? Nunca vi isso…

saoj

Só faltou responder qual é por default a memória que a MJV aloca se vc não especificar nada. Isso o manual não responde. :slight_smile:

De qualquer forma obrigado, pois não sabia que tinha help para parametro (java -X -help). Pensei que era só para o programa inteiro (java -help).

louds

O que ser uma MJV? O termo é JVM ou MVJ se traduzir. A implementação da Sun usa 64mbits de heap por padrão (1.4 e 1.5 pelo menos).

Veja que é a quantidade de memoria alocada para o heap de objetos, não a quantidade de memoria utilizada pelo software como um todo. Para isso não creio que exista algum parâmetro ou valor documentado.

B

Aproveitando o tópico: qual a diferença de GARBAGE COLLECTION tipo GENERATIONAL e NON-GENERATIONAL?

T

Como a explicação é um bocado complicada, vou dar o link:

http://www-106.ibm.com/developerworks/java/library/j-jtp11253/

B

grato!

Criado 2 de junho de 2005
Ultima resposta 11 de jun. de 2005
Respostas 8
Participantes 7