J'ai une DLL Windows Visual Studio 8.0 C++ 32 bits (non.NET) qui semble occuper plus de mémoire que je ne le pensais. Je veux déterminer exactement où va la mémoire, pas seulement une seule figure de la mémoire totale utilisée (pas intéressé par les valeurs d'utilisation de la mémoire de Task Manager ou de Resource Monitor). De retour en 16 jours, HeapWalker était très utile et vous pouviez même sélectionner un handle BITMAP et voir son contenu graphique. J'essaie de me rappeler comment lire un fichier .MAP et additionner les différentes sections, mais il y a très peu de documentation et je ne suis pas sûr de la précision de cette technique. Quelqu'un a des conseils?Comment puis-je catégoriser l'utilisation de la mémoire d'une application/DLL NON-NET?
Répondre
Si vous avez besoin de trouver la taille des différentes sections de la DLL, vous pouvez utiliser dumpbin.exe. C'est un outil de ligne de commande pour inspecter les DLL et les exécutables. Assurez-vous de lancer vcvars32.bat avant d'essayer de l'exécuter.
Pour regarder la consommation de mémoire réelle de votre DLL, je suggère de commencer par umdh.exe. Il est livré dans le cadre de Windbg de Microsoft. Tant que vous construisez vos fichiers avec un pdb, il sera capable de résoudre les symboles dans votre application. Vous pouvez ensuite prendre quelques photos de la mémoire pour rechercher des fuites. Vous pouvez également effectuer un vidage complet de toutes les allocations pour voir où la mémoire est allouée et combien est allouée.
J'avais essayé d'exécuter dumpbin mais ai eu une erreur au sujet d'une DLL manquante. N'a pas pensé à lancer vcvars32! Je vais essayer vos suggestions. J'ai suivi les allocations dynamiques, mais le plus grand succès est la première fois que la DLL est chargée, donc je regarde la taille du code, les données statiques et autres. Merci d'avoir répondu. – AlanKley
- 1. Comment catégoriser l'accès aux données SQL Server pour les papiers?
- 2. Expression régulière pour catégoriser les parties d'une adresse de service?
- 3. Comment afficher la mémoire gratuite de l'iPhone? et comment libérer la mémoire de l'iPhone?
- 4. Existe-t-il un moyen de catégoriser mes contrôles personnalisés dans la boîte à outils?
- 5. Comment vérifier la fuite de mémoire?
- 6. comment libérer de la mémoire (contrôle utilisateur)
- 7. Déchargement de la mémoire
- 8. Utilisation de la mémoire
- 9. CGMutablePathRef Gestion de la mémoire
- 10. Allouer de la mémoire personnalisée
- 11. Limitations de la mémoire .NET
- 12. Gestion de la mémoire UITabViewController
- 13. gestion de la mémoire iphone
- 14. Comment gérer la gestion de la mémoire dans cette situation?
- 15. Comment désactiver la journalisation de la mémoire Elmah?
- 16. iPhone gestion de la mémoire
- 17. Utilisation de la mémoire + .net
- 18. Utilisation de la mémoire IronPython
- 19. gestion de la mémoire java
- 20. Vue de la mémoire allouée
- 21. Gestion de la mémoire NetBeans
- 22. Utilisation de la mémoire SQL
- 23. minuscule gestionnaire de la mémoire
- 24. Comment libérer la mémoire associée par CGImageCreateWithImageInRect
- 25. Comment augmenter la mémoire java dans openfire
- 26. Comment implémenter la mémoire partagée dans .NET?
- 27. Comment les rails utilisent-ils la mémoire?
- 28. La mémoire libre n'efface pas le bloc de mémoire
- 29. Comment savoir une utilisation de la mémoire de thread?
- 30. Comment libérer de la mémoire à partir de std :: deque?