Question

L’indicateur de compilateur VS2005 C ++ est-il semblable à l’indicateur java Xmx ??? M afin que je puisse limiter la taille de segment de mémoire de mon application fonctionnant sous Windows.

Je dois limiter la taille du segment afin de pouvoir remplir la mémoire afin de connaître la mémoire disponible actuelle. (Le code s'exécute également sur un système intégré où il s'agit de la meilleure méthode pour obtenir l'utilisation de la mémoire.)

Était-ce utile?

La solution

Vous voudrez peut-être vérifier si l'utilitaire gflags (dans les outils de débogage Windows) peut le faire. Il peut faire beaucoup d'autres choses intéressantes avec le tas d'applications natives.

Autres conseils

Vous pouvez définir la taille du tas pour votre programme en définissant la taille dans:

lieur - > Système - > Taille de la réserve de tas

Il peut également être défini sur la ligne de commande du compilateur à l'aide de / HEAP: reserve

La taille du segment de mémoire dépend de l’allocateur utilisé. Il se peut également que certains appels API Windows limitent la quantité de mémoire qu'un processus peut allouer, mais je n'en connais pas un et je n'ai pas envie de le rechercher maintenant, désolé. Mais en général, si vous écrivez votre propre allocateur (vous encresz peut-être simplement l'opérateur malloc () ou new fourni par le compilateur), vous pouvez ainsi limiter artificiellement la taille du segment mémoire.

Sinon, si vous avez votre propre allocateur, même s'il ne s'agit que d'un wrapper, vous pouvez garder trace de la quantité totale de mémoire allouée. Si vous connaissez le montant disponible, vous pouvez simplement effectuer une soustraction et obtenir le total. Vous pourrez peut-être aussi obtenir des statistiques de fragmentation, comme le plus grand bloc libre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top