Usando memória demais

8 respostas
F

Bom dia pessoal do Java Portal. :lol:
Como voces vem, sou novo tanto em Java quanto aqui no forum.

Vou lançar minha primeira questão:

Eu estou lendo o livro do Deitel 4ed, e observei que mesmo os simples códigos do tipo hello world oucupam muita memória quando executam em torno de 11-13 MB. Ja tentei executar de varias formas como:

-Interpretando o programa com o comando java ou javaw
-Executando direto do JBuilder
-Transformando em .exe e .jar

Sempre o mesmo resultado 11-13MB oucupa o processo.

Minha config é:

Windows XP/SP1;

AthlonXP 2200;

768MB Ram.

OBS. Eu fiz um recente upgrade de 256MB para mais 512MB chegando nos 768MB atuais. Eu não tinha observado antes quanta memória o processo alocava. Existe alguma relação com a quantidade de memória do sistema e quanto o processo oucupa ou é fixo?

8 Respostas

M

É isso aí mesmo… Não tem relação entre quantidade de memória e quanto java usa… O problema é que, por ser interpretada, o código é praticamente compilado em tempo de execução. Leve em conta aí, todas as checagem de hardware, memória livre, (que qualquer compilador faz) e além desses comuns, a checagem de sistema operacional, o carregamento da classe referente aquele sistema, etc, etc etc…

Resumindo: Não tem como fugir não… :???: É isso aí mesmo…

F

Corrija se eu estiver errado.

Quando eu crio um .exe ele deixa de ser interpretado pelo java certo? :???:

M

Er… Não exatamente…
Você tem que entrar com o java pra dentro do exe, o que acarreta num arquivo relativamente grande e nada eficaz… Você não acredita que foi desenvolvido um compilador de java pra gerar exe dentro do JBuilder, acha? Eu não sei, mas acredito que não… O que acredito que tenham feito é pego o código fonte do java e colocaram ele dentro do executável de alguma forma…
Lá dentro do executável, ele chama a interpretação do java (que, acredito eu, deve estar dentro do executável).

Att

B

“morcegao”:
Er… Não exatamente…
Você tem que entrar com o java pra dentro do exe, o que acarreta num arquivo relativamente grande e nada eficaz… Você não acredita que foi desenvolvido um compilador de java pra gerar exe dentro do JBuilder, acha? Eu não sei, mas acredito que não… O que acredito que tenham feito é pego o código fonte do java e colocaram ele dentro do executável de alguma forma…
Lá dentro do executável, ele chama a interpretação do java (que, acredito eu, deve estar dentro do executável).

Att

Concordo com o morcegão. Esse .exe é uma espécie de .bat …
é apenas uma chamada ! .exe e java não combinam !!! hihihi

N

Naum… Acerdito que vc deva esta trabaahando com o jBuilder… o no wizard permite criar exe… o Exe que o Builder gera naum e nada mais do que um similar há um Script de bat… ele ainda necessita da JVM para rodar…

Abraço Kanji Hara Neto

F

Observei uma coisa.

Quando eu executo o .jar o processo que aparece no gerenciador de tarefas do WinXP é o javaw.exe.

Quando eu executo o .exe que eu criei utilizando o JBuilder 10.0 o nome do processo é TesteW.exe (o nome do próprio aplicativo), e não existe nenhum processo java, ou javaw.

Isso não significa que ele não esta utilizando a JVM?

OBS. O nome da função que cria o .exe no JB é native executable (se eu não me ingano). Será que tem alguma relação?

R

Olá pessoal,

Mas e compilando através do GCJ ? Me parece que o GCJ compila arquivos java para código nativo dispensando o JRE.

Será que assim nao diminuiria o uso da memória?

Até +

Rafael S.

M

cara SO e uma verdadeiro enigma e um pouco complicado de entender quem nunca viu, mas vamos tentar te explicar quando vc compilar um aplicação em java o que acontece primeiro o processador importa todos os comandos necessario do java javac " que e pessado" e os outros que forem necessario copia codigo para memoria depois gera o .class isso tudo na pobre da memoria que já ta carregado um monte de coisa… e cara ela tem q importar classe e bem obvio ou seja ela usa + memoria… por exemplo ela ta executando uma variavel que precisa de atribuição para tudo deixa na memoria e executar somente o processo de inicialização rola mt mt coisa e se tiver banco nossa matou aplicação

Sabemos que java e pesado por natureza evolui bastante mas tá pessado ainda, so falamos em memoria n falamos em enviar para processador falos mt coisa

Independente de vc criar um jar … vai da no mesmo jar so e um Zip da vida…

blz n expliquei mt se n iria te confundir… espero ter te ajudado

Criado 25 de agosto de 2004
Ultima resposta 16 de fev. de 2005
Respostas 8
Participantes 6