2010-07-22 10 views
0

Je suis en train de travailler sur une application MFC qui semble s'authentifier automatiquement à ~ 160 Mo de mémoire virtuelle. L'application fonctionne généralement à 10-14 Mo d'utilisation de la mémoire, donc ce niveau de mémoire engagée semble excessif. De plus, il n'y a pas de place dans le code où VirtualAlloc est appelé ... COM & ATL sont également utilisés.Comment l'application MFC est-elle validée dans la mémoire virtuelle?

La mémoire affiche l'instance lancée par le processus, avant qu'un point d'arrêt dans __tmainCRTStartup puisse être atteint.

Comment cette mémoire peut-elle être réservée/validée?

Merci d'avance!

Répondre

0

avéré qu'il y avait un code « héritage » en utilisant un tableau statique d'objets personnalisés qui allouaient environ 1000 éléments supplémentaires, donc changer cette option pour utiliser un std :: vecteur atténué ce problème complètement ...

0

La seule raison peut être une DLL que vous utilisez. J'ai utilisé MFC 7.0 et 9.0 pour beaucoup de projets et peux vous dire qu'ils ne commettent pas beaucoup de mémoire.

+0

ajoute que la question dans un code hérité qui avait un tableau de pile global d'une taille plutôt grande, qui était validé et jamais utilisé à moins qu'une erreur de page ne se produise. – echobravo