OVH Cloud OVH Cloud

Gestion de la memoires

5 réponses
Avatar
Jonny
Hello tlm,

Mon probleme est que j'ai une app. windows avec a gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels. Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon ocx a
nothing, d'appeller dispose()...d'appeller le garbage avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+

5 réponses

Avatar
Christophe QUEVAL
Bonsoir,

Comme ça, je n'ai pas de solution toute faite, mais mon conseil, c'est
d'éviter au maximum l'emploi d'ocx dans .net si vous en avez la possibilité
(meilleure gestion des performances et de la mémoire, pas d'interop).

Christophe
"Jonny" a écrit dans le message de
news: 165b01c4bc30$dd60d7a0$
Hello tlm,

Mon probleme est que j'ai une app. windows avec a gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels. Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon ocx a
nothing, d'appeller dispose()...d'appeller le garbage avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+



Avatar
Seb
Tu es sur que c'est des ocx ou c'est simplement des usercontrol ?

De toute façon avec des images c'est un peu normal , une fois loadé en
mémoire elles sont décompréssées , c'est donc du BMP qui est stockée et pas
la taille d'un JPG.

Si c'est des OCX , as tu accés aux codes sources ? il y a moyen d'optimiser
par là


"Jonny" a écrit dans le message de
news: 165b01c4bc30$dd60d7a0$
Hello tlm,

Mon probleme est que j'ai une app. windows avec a gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels. Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon ocx a
nothing, d'appeller dispose()...d'appeller le garbage avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+



Avatar
Jonny
Oui tu as raison excuse moi ce sont des user control. Je
suis d accord avec toi que c'est traiter comme des BMP
mais meme quand je detruit mon user control avec dispose
(), je ne reprend aucun Octets en memoire, je comprend pas.



-----Message d'origine-----
Tu es sur que c'est des ocx ou c'est simplement des


usercontrol ?

De toute façon avec des images c'est un peu normal , une


fois loadé en
mémoire elles sont décompréssées , c'est donc du BMP qui


est stockée et pas
la taille d'un JPG.

Si c'est des OCX , as tu accés aux codes sources ? il y a


moyen d'optimiser
par là


"Jonny" a écrit


dans le message de
news: 165b01c4bc30$dd60d7a0$
Hello tlm,

Mon probleme est que j'ai une app. windows avec a gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels.




Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon




ocx a
nothing, d'appeller dispose()...d'appeller le garbage




avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+





.



Avatar
Frederic Melantois
As-tu aussi disposer aussi tes images, et ton Graphics (si utilise cela pour
les redimmensionnements) ?
tu gagneras une generation dans le garbage. La mémoire sera libérée plus
vite.

Frédéric Mélantois


"Jonny" a écrit dans le message de
news:234801c4bcea$19c72ff0$
Oui tu as raison excuse moi ce sont des user control. Je
suis d accord avec toi que c'est traiter comme des BMP
mais meme quand je detruit mon user control avec dispose
(), je ne reprend aucun Octets en memoire, je comprend pas.



-----Message d'origine-----
Tu es sur que c'est des ocx ou c'est simplement des


usercontrol ?

De toute façon avec des images c'est un peu normal , une


fois loadé en
mémoire elles sont décompréssées , c'est donc du BMP qui


est stockée et pas
la taille d'un JPG.

Si c'est des OCX , as tu accés aux codes sources ? il y a


moyen d'optimiser
par là


"Jonny" a écrit


dans le message de
news: 165b01c4bc30$dd60d7a0$
Hello tlm,

Mon probleme est que j'ai une app. windows avec a gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels.




Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon




ocx a
nothing, d'appeller dispose()...d'appeller le garbage




avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+





.



Avatar
Jonny
Salut Frederic,

Oui j'appelle dispose() pour mes images. Je comprends
vraiment pas pourquoi, mon app. prend toujours plus de
ram,mais ne la libere jamais.

J'ai tester dans les userControl et dans ce cas j'ai pas
ce probleme, sauf que j'ai besoin de mon user control. Je
sais pas trop quoi faire.

A+

-----Message d'origine-----
As-tu aussi disposer aussi tes images, et ton Graphics


(si utilise cela pour
les redimmensionnements) ?
tu gagneras une generation dans le garbage. La mémoire


sera libérée plus
vite.

Frédéric Mélantois


"Jonny" a écrit


dans le message de
news:234801c4bcea$19c72ff0$
Oui tu as raison excuse moi ce sont des user control. Je
suis d accord avec toi que c'est traiter comme des BMP
mais meme quand je detruit mon user control avec dispose
(), je ne reprend aucun Octets en memoire, je comprend


pas.



-----Message d'origine-----
Tu es sur que c'est des ocx ou c'est simplement des


usercontrol ?

De toute façon avec des images c'est un peu normal , une


fois loadé en
mémoire elles sont décompréssées , c'est donc du BMP qui


est stockée et pas
la taille d'un JPG.

Si c'est des OCX , as tu accés aux codes sources ? il y a


moyen d'optimiser
par là


"Jonny" a écrit


dans le message de
news: 165b01c4bc30$dd60d7a0$
Hello tlm,

Mon probleme est que j'ai une app. windows avec a






gauche
un treeview et a droite des
ocx. Un ocx est composer de un picture box, qq labels.




Je
prends les images d une base de donnees sql server.

Voila donc une fois loader mon app. prend pas trop de
memoire, mais dans mon treeview lorsque je change de
categorie a ma droite sont afficher sous forme de
thumbnails mes images. A chaque fois que je load les
images mon app. prend 10 Meg. de ram.

Ca devient vite lourd :), j'ai essayer de mettre mon




ocx a
nothing, d'appeller dispose()...d'appeller le garbage




avec
GC.Collect().

Mais rien ne fait, qqn peut m'aider ?

Merci et a+





.





.