Bonjour,
J'ai un soucis dans mon programme avec une DLL achetée à un éditeur. En gros mon code est comme suit :
Mon problème c'est qu'à chaque utilisation de la dll, mon application prend un méga de plus en mémoire. C'est très génant car elle est destiné à devenir une tâche de fond sur un serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Nouveau thread appelé régulièrement { loop(~15) { //code divers et varié sans fuite mémoire using(appel à la dll tiers) { //code assez cours créant une image et l'enregistrant dans un fichier } } }
Bien entendu la DLL tiers ne peut être remplacée simplement (code complexe, coût élevé...).
Comme j'utilise un using, je pense que la DLL stock les images dans un tableau static ou un truc du style et ce n'est donc pas collecté par le GC avant la fin de l'application... Comment tester si c'est le cas et comment me débarrasser de tout ce qui est stocké ?
Peut on démonter une classe chargée en mémoire (et donc vider tous les static) ?
Si vous avez des pistes pour régler mon problème, n'hésitez pas.
Cordialement,
Swann
Partager