2010-12-14 5 views
1

J'ai une application écrite en C++ qui a réservé 1,2 Go de mémoire mais seulement 600 Mo sont validés. L'application utilise COM/DCOM, ADO.Cause de la réservation de mémoire

Je vous demanderais si vous avez une idée pourquoi tant de mémoire sont réservées et jamais engagées?

Merci

+0

Combien de threads avez-vous en cours d'exécution? –

+0

Environ 7 threads – mathk

+0

Est-ce (plutôt vieux) l'article de la base de connaissances applicable à votre cas http://support.microsoft.com/kb/193026? – sharptooth

Répondre

2

L'application pourrait réserver volontairement une grande région pour certains allocateur et engagent que les petites régions comme ils sont réellement nécessaires. Si tel est le cas, ils ne seront pas validés tant que l'application ne demandera pas l'allocation de mémoire à l'allocateur et qu'elle ne commettra pas de mémoire.

+0

Merci savez-vous quel allocator peut faire cela? – mathk

+0

@mathk: Notre société dispose d'un allocateur interne très simple qui se comporte comme ça, donc je suppose que presque n'importe quel développeur qualifié peut en écrire un et il peut être n'importe quoi, donc il n'y a aucune chance de deviner. – sharptooth

+0

Ok, la chose est que je cherche VirtualAlloc dans le projet entier et je ne pouvais pas en trouver un. Y a-t-il une autre fonction à la mémoire réservée? – mathk

Questions connexes