Bonjour,

Sur une application, j'ai parfois des OutOfMemoryError (sur l'émulateur) alors je fais attentation à bien libérer mes ressources.

Après vérification, je ne dépasse jamais la moitié de la mémoire du téléphone (fixé à 512Ko)et les ressources que je souhaite libérer semble se libérer correctement.

Pourtant un OutOfMemoryError arrive parfois sans pour autant que la mémoire soit saturé, le GC() passant largement avant que la mémoire soit saturé et semblant vidé la mémoire.

a question est : est ce que quelqu'un à des petits trucs ? Du style des quels objets peuvent provoquer ce genre de problème ?

Au début c'était liée à des threads mais maintenant leur nombre est maitrise et ils sont correctement arrêtés lorsque l'on quitte l'application.

1- Je n'appelle pas pour l'instant le GC() via System dans mon code. Je laisse l'appli se débrouille, je fais juste attention à bien à mettre à "null" toutes les références vers un objet et ca semble libérer correctement les ressources.

2- Si j'appelle le GC() "manuellement" en utilisant l'outil de Sun pour suivre l'état de la mémoire ca ne change pas le résultat "OutOfMemory" alors que l'appli libére les ressources à l'appel du GC et n'indique pas dépasser 50% de la mémoire dispo. Par contre le GC() peut passer plusieurs fois pendant cette période.

Alors si quelqu'un peut m'aider à un peu mieux comprendre ce qui se passe.....

D'avance Merci