Forcer le garbage collector: la syntaxe ?

Le
Jacquouille14
Bonjour,
J'ai besoin de forcer le garbage (classe GC) dans mon prog
d'affichage de photos. Je ne suis pas sur d'avoir la bonne syntaxe
malgré mes recherches sur msn.
Vista sp2, vb2008 express.
Un timer provoque l'affichage de photos, au bout de 26 photos j'ai
OutOfMemoryException. Jai vu que le garbage ne se fait pas.
Je voudrais forcer le garbage. J'essaie GC.collect() sans succés.
Quelque chose ressemblant à:
If GC.GetTotalMemory(False)<50000
GC.Collect()
End If
--
Jacques dit Jacquouille
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice
Le #20093541
Bonjour,

Il est possible que cela ne change rien. Le "out of memory error" indique
plutôt que qq chose n'est pas libéré correctement. Le garbage collector ne
supprime que ce qui n'est plus utilisé et une erreur "out of memory" indique
plutôt que la mémoire est toujours considérée comme utilisée.

Il faudrait vérifier que toutes les références à chaque photo sont bien
supprimées. A mon avis, il reste une référence à ces photos qq part qui
empêche leur bonne libération...


--
Patrice

"Jacquouille14" discussion : 4aa53351$0$22886$
Bonjour,
J'ai besoin de forcer le garbage (classe GC) dans mon prog
d'affichage de photos. Je ne suis pas sur d'avoir la bonne syntaxe
malgré mes recherches sur msn.
Vista sp2, vb2008 express.
Un timer provoque l'affichage de photos, au bout de 26 photos j'ai
OutOfMemoryException. Jai vu que le garbage ne se fait pas.
Je voudrais forcer le garbage. J'essaie GC.collect() sans succés.
Quelque chose ressemblant à:
If GC.GetTotalMemory(False)<50000
GC.Collect()
End If
--
Jacques dit Jacquouille



Jacquouille14
Le #20096471
Patrice a écrit :
Bonjour,

Il est possible que cela ne change rien. Le "out of memory error" indique
plutôt que qq chose n'est pas libéré correctement. Le garbage collector ne
supprime que ce qui n'est plus utilisé et une erreur "out of memory" indique
plutôt que la mémoire est toujours considérée comme utilisée.

Il faudrait vérifier que toutes les références à chaque photo sont bien
supprimées. A mon avis, il reste une référence à ces photos qq part qui
empêche leur bonne libération...



Bonjour,
C'est bien ce que je me dis sauf que le prog tourne sur un pc portable
sans problème.

--
Jacques dit Jacquouille
Patrice
Le #20096631
Avec la même RAM ? Le même OS (32 bit dans les deux cas ?) La même version
de Framework ? Ce n'est pas un fichier en particulier qui entraine le
plantage ?

A priori je dirais qu'une erreur "out of memory" ne peut pas être réglée via
un GC.Collect (car le problème est que la mémoire ne peut de toute façon pas
être libérée).

--
Patrice


"Jacquouille14" discussion : 4aa682ec$0$1542$
Patrice a écrit :
Bonjour,

Il est possible que cela ne change rien. Le "out of memory error" indique
plutôt que qq chose n'est pas libéré correctement. Le garbage collector
ne supprime que ce qui n'est plus utilisé et une erreur "out of memory"
indique plutôt que la mémoire est toujours considérée comme utilisée.

Il faudrait vérifier que toutes les références à chaque photo sont bien
supprimées. A mon avis, il reste une référence à ces photos qq part qui
empêche leur bonne libération...



Bonjour,
C'est bien ce que je me dis sauf que le prog tourne sur un pc portable
sans problème.

--
Jacques dit Jacquouille



Jacquouille14
Le #20120231
Patrice a écrit :
Avec la même RAM ? Le même OS (32 bit dans les deux cas ?) La même version
de Framework ? Ce n'est pas un fichier en particulier qui entraine le
plantage ?



Bonjour,
Si, cela est du aux images scannées en jpeg qui n'ont pourtant
pas un poids supérieur aux images de mon APN.
(j'ai trouvé hier soir en lançant le prog sur des images de
mon APN)
Le scanner doit mettre un tag erroné dans l'image ou une info
non reconnue ...
Je vais titiller mes images scannées avec the gimp.
Bonne soirée.
--
Jacques dit Jacquouille
Gilles TOURREAU
Le #20124801
Bonjour,

Lors du chargement des images via Image.FromFile(), l'exception
OutMemoryException indique que le format de l'image n'est pas correcte.
Vous n'avez en aucun cas besoin de lancer explicitement un GC.Collect(),
.NET le fera automatiquement si besoin est.

Cordialement

--
Gilles TOURREAU - MVP C#
E-Mail :
Site Web : http://gilles.tourreau.fr

Société P.O.S - Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

"Jacquouille14" discussion : 4aa53351$0$22886$
Bonjour,
J'ai besoin de forcer le garbage (classe GC) dans mon prog
d'affichage de photos. Je ne suis pas sur d'avoir la bonne syntaxe
malgré mes recherches sur msn.
Vista sp2, vb2008 express.
Un timer provoque l'affichage de photos, au bout de 26 photos j'ai
OutOfMemoryException. Jai vu que le garbage ne se fait pas.
Je voudrais forcer le garbage. J'essaie GC.collect() sans succés.
Quelque chose ressemblant à:
If GC.GetTotalMemory(False)<50000
GC.Collect()
End If
--
Jacques dit Jacquouille


Jacquouille14
Le #20125331
Gilles TOURREAU a écrit :
Bonjour,

Lors du chargement des images via Image.FromFile(), l'exception
OutMemoryException indique que le format de l'image n'est pas correcte.
Vous n'avez en aucun cas besoin de lancer explicitement un GC.Collect(),
.NET le fera automatiquement si besoin est.

Cordialement



Bonjour,
Ma conclusion précedente est ainsi confirmée.
Je vais tenter de récupérer ces photos très anciennes.
Merci.

--
Jacques dit Jacquouille
Publicité
Poster une réponse
Anonyme