Bonjour à tous, question ouverte/générale
J'ai une surconsommation de RAM / mémoire vive sur une appli que j'ai construite après, enfin, avoir compris l'immense potentiel des Dictionaries.
J'avais remarqué que la consommation de RAM avait tendance à grimper si j'utilisais l'appli longtemps mais je suspectais la configuration tordue de l'espace TSE / Win Serveur où j'exécute l'appli d'être en cause car elle est globalement mauvaise (un fichier XL s'y ouvre deux fois plus lentement qu'en local.)
Mais après nouveaux tests en local, la surconso semble bien inhérente à l'appli. Mon intuition actuelle est que bien que j'ai mis des Dic.RemoveAll partout et si les dictionnaires sont bien vidés... Cela ne libère pas la RAM initiale => chaque exécution s'additionne aux précédentes.
Je comprends/devine de quelques posts anglais que Set Mondico = nothing pourrait être plus efficace que Remove.all
Questions :
-Pourquoi diable la RAM n'est-elle libérée après le Remove.all ?
-Ou même quand j'appuie sur le bouton Reset de l'écran VBA ?
-A court terme, la seule façon que j'ai de vraiment régler le problème sans coder, c'est de totalement fermer Excel. C'est-à-dire que si j'utilise l'appli + un petit fichier vide à côté, monte à 2 Go de RAM puis ferme l'appli = je reste à 2 Go occupés par Excel tant que je ne l'ai pas fermé le dernier petit fichier vide.
Qu'est-ce que cette sorcellerie Messires/Gentes Dames ?!
Merci d'avance pour toutes vos lumières.
J'ai une surconsommation de RAM / mémoire vive sur une appli que j'ai construite après, enfin, avoir compris l'immense potentiel des Dictionaries.
J'avais remarqué que la consommation de RAM avait tendance à grimper si j'utilisais l'appli longtemps mais je suspectais la configuration tordue de l'espace TSE / Win Serveur où j'exécute l'appli d'être en cause car elle est globalement mauvaise (un fichier XL s'y ouvre deux fois plus lentement qu'en local.)
Mais après nouveaux tests en local, la surconso semble bien inhérente à l'appli. Mon intuition actuelle est que bien que j'ai mis des Dic.RemoveAll partout et si les dictionnaires sont bien vidés... Cela ne libère pas la RAM initiale => chaque exécution s'additionne aux précédentes.
Je comprends/devine de quelques posts anglais que Set Mondico = nothing pourrait être plus efficace que Remove.all
How to destroy Scripting Dictionary? - Simple Excel VBA
Scripting dictionaries are awesome, but after they are not in use anymore, how to set them to nothing? How to destroy Scripting Dictionary?
simpleexcelvba.com
Questions :
-Pourquoi diable la RAM n'est-elle libérée après le Remove.all ?
-Ou même quand j'appuie sur le bouton Reset de l'écran VBA ?
-A court terme, la seule façon que j'ai de vraiment régler le problème sans coder, c'est de totalement fermer Excel. C'est-à-dire que si j'utilise l'appli + un petit fichier vide à côté, monte à 2 Go de RAM puis ferme l'appli = je reste à 2 Go occupés par Excel tant que je ne l'ai pas fermé le dernier petit fichier vide.
Qu'est-ce que cette sorcellerie Messires/Gentes Dames ?!
Merci d'avance pour toutes vos lumières.