Congelamento exporádico da JVM

4 respostas
MaiqueL

Olá pessoal,

Estou utilizando um algoritmo clássico de computação gráfica flood-fill.

O problema é que se eu tenho que pintar mais de uma região há um congelamento exporádico da JVM.

4 Respostas

J

Em qual superfície você está pintando? Computação gráfica precisa de desempenho, então se você pintar em cima da gdi sua aplicação vai coletar muito lixo, ocasionando essas pausas terríveis. O ideal é utilizar o hardware para pintar.

Graphics utiliza a gdi;
Graphics2D utiliza opengl, portanto vai usar sua placa de vídeo.
VolatileImage também é acelerada no hardware.

As duas últimas são as mais adequadas para isso.

Detalhe: O coletor de lixo é o seu pior inimigo nessa área. Os desenvolvedores de jogos preferem usar compiladores que geram código nativo(pascal, c++, c…) por isso. Portanto, deve trabalhar a lógica para criar bons algoritmos que resolvam o problema da melhor maneira possível.

MaiqueL

juliocbq:
Em qual superfície você está pintando? Computação gráfica precisa de desempenho, então se você pintar em cima da gdi sua aplicação vai coletar muito lixo, ocasionando essas pausas terríveis. O ideal é utilizar o hardware para pintar.

Pois é eu estou utilizando um framework chamado Processing.

Estou pintando um Objeto PImage.

To inclinado a voltar e refazer isso em C/C++ com Opencv.

J

MaiqueL:
juliocbq:
Em qual superfície você está pintando? Computação gráfica precisa de desempenho, então se você pintar em cima da gdi sua aplicação vai coletar muito lixo, ocasionando essas pausas terríveis. O ideal é utilizar o hardware para pintar.

Pois é eu estou utilizando um framework chamado Processing.

Estou pintando um Objeto PImage.

To inclinado a voltar e refazer isso em C/C++ com Opencv.

Tenta usar o Graphics2D ou VolatileImage. Se puder faça um profiler da aplicação com o netbeans ou a jvisualvm para detectar gargalos.

Eu imagino que c++ seria a melhor opção para esse tipo de aplicação.
Ferramentas e IDEs para c++ aconselho o qt. É Opensource:

http://qt.nokia.com/

MaiqueL

Obrigado por responder.

Criado 19 de maio de 2010
Ultima resposta 20 de mai. de 2010
Respostas 4
Participantes 2