Quel est le meilleur moyen de mesurer l’utilisation de la mémoire à partir d’un programme?

J’ai essayé d’optimiser le programme Windows que je développe, en essayant de trouver les meilleures structures de données qui minimiseront l’utilisation de la mémoire. Il charge de gros blocs de données, donc avec des fichiers volumineux, il peut utiliser une grande quantité de RAM.

Pour la mesure de la mémoire, j’ai utilisé GlobalMemoryStatusEx. Voir: http://msdn.microsoft.com/en-us/library/aa366589(VS.85).aspx

Je crois que cela fonctionne pour la plupart des versions de Windows, de Windows 2000 à Windows Vista inclus.

Est-ce la manière préférée de mesurer l’utilisation de la mémoire à partir d’un programme, ou existe-t-il une autre méthode plus efficace?


Addenum: trouvé la question de Stackoverflow: Comment obtenir une utilisation de la mémoire sous Windows en C ++ qui fait référence à GetProcessMemoryInfo

Je vais essayer celui-là.

Si vous essayez d’optimiser votre propre programme en termes de mémoire, je vous suggère d’utiliser un outil de profileur de mémoire pour cela. Il y en a beaucoup là-bas … certains sont gratuits, d’autres pas .. vous trouverez sûrement celui dont vous avez besoin. Ces outils sont écrits spécifiquement pour ce dont vous avez besoin (et également pour les recherches de memory leaks).

Voir l’addénum dans ma question.

J’utilise valgrind pour suivre l’utilisation de la mémoire, ainsi que pour définir le code et détecter les memory leaks. Je crois que l’outil de masse suit l’utilisation de la mémoire sur la stack et le tas.