Heap space, muito estranho!

7 respostas
oitathi

Esta acontecendo uma coisa muito estranha…
estou inicciando o me programa jar por um bat com o seguinte comando:

start java -Xmx512m -jar mapTest.jar "%1"

ou seja minha maquina virtual tem memoria de 512m, certo? mas quando tento abrir uma imagem de 52m no meu programa aparece erro de
Exception in thread “AWT-EventQueue-0” java.lang.OutOfMemoryError: Java heap space

o q estou fazendo de errado?

7 Respostas

J

Dependendo da codificação da imagem, o processo de decodificação despende muita memória. Uma imagem desse tamanho deve literalmente engolir sua memória ram.

Lembre-se que a codificação só existe em disco. Para visualizar a imagem é necessário que exista uma decodificação para bitmap do sistema. É assim que a placa de vídeo funciona.

Metaleiro

[color=darkblue] Tente aumentar, tente usar os parâmetros dessa forma : [/color]

-Xms256m -Xmx512m -XX : PermSize=128m -XX:MaxPermSize=256m

[color=darkblue] Ou da forma que você preferir [/color]

esmiralha

oitathi:
Esta acontecendo uma coisa muito estranha…
estou inicciando o me programa jar por um bat com o seguinte comando:

start java -Xmx512m -jar mapTest.jar "%1"

ou seja minha maquina virtual tem memoria de 512m, certo? mas quando tento abrir uma imagem de 52m no meu programa aparece erro de
Exception in thread “AWT-EventQueue-0” java.lang.OutOfMemoryError: Java heap space

o q estou fazendo de errado?

Você precisa de todos os pixels dessa imagem na memoria ao mesmo tempo?

oitathi

Sim, eu preciso, pq é a imagem de uma mapa… e preciso visualiza-lo inteiramente para que possa achar qq ponto nessa mapa tento latitude e longitude

gilmaslima

Faz um teste assim:

1º Aumenta a memória e testa;
2º Tenta com uma imagem menor;

Posta ai depois…

oitathi

então, ele abre imagens ate 21m se o xmx for inicializado com 512, mas imagens maiores do q isso,ele não abre …
gostaria de sabr como posso saber com dois prints quanto é q o java tah utilizanaod de memoria da vm pra abrir essa imagem…
tipo, eu queria dois prints de tela:
um com a memoria disponivel antes de eu abrir uma imagem
e e outro com a memoria disponivel depois q abriu a imagem

alguém sabe como eu posso fazer isso?

J

oitathi:
então, ele abre imagens ate 21m se o xmx for inicializado com 512, mas imagens maiores do q isso,ele não abre …
gostaria de sabr como posso saber com dois prints quanto é q o java tah utilizanaod de memoria da vm pra abrir essa imagem…
tipo, eu queria dois prints de tela:
um com a memoria disponivel antes de eu abrir uma imagem
e e outro com a memoria disponivel depois q abriu a imagem

alguém sabe como eu posso fazer isso?

Você já tentou abrir um arquivo desse tamanho em um software robusto como o adobe photoshop?

Se ele abrir talvez você consiga criar um algoritmo do nível dos codecs dele para abrir. Mas acho que nem o adobe consiga abrir um arquivo dessa maginitude.

Pode até abrir, mas tenho minhas dúvidas.

Criado 3 de dezembro de 2010
Ultima resposta 3 de dez. de 2010
Respostas 7
Participantes 5