Memoria Heap estorou com apenas 2 imagens o que pode ser?
8 respostas
wag182
Pessoal, boa tarde!
Será que alguem poderia me ajudar, estou desenvolvendo uma aplicação para manipulação de imagens, estou na fase de testes, e nos meus testes quando eu carrego imagens JPG esta tudo tranquilo…posso garregar 20 imagens tranquilamente…mas quando eu carrego PNG apenas 2 imagens já estoura a memoria heap…e as imagens são pequenas em tamanho cada uma tem 50kb.
Estranho, isso parece um problema que eu tive com o JFreeChart tempos atrás…como estão seus parâmetros de uso da heap na sua VM?Vc usa BufferedImage ou RenderedImage???
wag182
Olá Ironlynx obrigado por me ajudar.
Os parametros da minha heap está como default não cheguei a aumentar a memoria…mas ela estoura quando chega em 100mb…mas até ai já tem espaço pra caramba né?
O que eu percebi quando eu carrego um PNG a memoria sobe no minimo 20MB com uma imagem de 50kb.
Estou usando BufferedImage.
Os PNG’s tem 1500x1500 mas como são imagens simples ( um fundo azul e algumas transparências ) no disco rígido ela tem 50kb.
Tá embaçado cara nao sei mais o que eu faço.
agradeço desde já…
Ironlynx
Espaço pra caramba nada!Se eu não me engano, o default é bem baixo, algo como 64… dá um -Xmx256m da vida no seu heap pq vc terá problemas.E infelizmente, a qualidade da imagem não fará tanta diferença…1500x1500 é pixel pacas, com cada um ocupando(se não me engano) 4 bytes.Talvez vc tenha que fazer tipo um cache(faz tempo que não mexo nisso), e usando RenderedImage deve melhorar a coisa.
davidbuzatto
Levando em conta tbm as transparências, etc…
Não é pq o arquivo é pequeno (50k) que o processamento dele será…
E como o Ironlynx falou, 1500x1500 é muita coisa mesmo.
Até mais!
wag182
Valeu mesmo pessoal
Achei que eu estava fazendo alguma coisa errada… é como o david falou…não é pq a imagem no disco tem 50k que o processamento dela vai ter esse tamanho…hauhauhauhau
Vou dar uma estuda entao no RendererImage e ler algumas coisa sobre cache.
é pq a imagem eu preciso trazer no tamanho original…pois o usuário manipula a imagem…ele diminui, aumenta, gira…e eu preciso da imagem com a qualidade maxima.
zirocool
hehehe! =)
O tamanho dela físico é uma coisa, aberto é outra… =)
Armazenado é como se fosse só um arquivo zip… hehehe
P
pasquotto
Tenta manipular uma imagem em uma resolução menor, ai, depois que o usuário tiver rotacionado, redimensionado e etc, vc aplica no arquivo original.
ViniGodoy
Por favor, não ressuscite tópicos como se a dúvida fosse postada ontem. O último post antes do seu era de 6 anos atrás.
Além disso, certifique-se que sua resposta é realmente a solução de um tópico antigo, caso ele não seja resolvido. Se você usar uma resolução menor numa imagem, irá perder qualidade ao redimensiona-la para um tamanho maior. Portanto, do ponto de vista de processamento de imagens, o que você sugeriu não sequer é aplicável.