Le gestionnaire de mémoire Delphi ne libère pas toute la mémoire inutilisée dans le système d'exploitation. La fragmentation peut aussi très mal fonctionner. Les deux dépendent du gestionnaire de mémoire que vous utilisez (FastMM est généralement meilleur que le gestionnaire de mémoire de stock dans D7, mais n'importe quel gestionnaire de mémoire peut être mis à genoux en utilisant une série spécifique de mémoire du gestionnaire de mémoire). De plus, WideStrings, bien qu'il s'agisse de chaînes COM, ne sont pas comptés par référence et pourraient ne pas être publiés même plus tard que les chaînes normales. La seule manière fiable d'interroger le message mémoire réel dans Delphi est de demander au gestionnaire de mémoire que votre programme Delphi utilise. Cette fonction dans l'unité du système fait pour vous:
function GetHeapStatus: THeapStatus
--jeroen
modifier: 20100104 en réaction à commenter par Marco: (FastMM est généralement mieux que le gestionnaire de mémoire disponible dans D7, mais n'importe quel gestionnaire de mémoire peut être mis à genoux en utilisant une série spécifique de modèles d'utilisation de la mémoire du gestionnaire de mémoire)
Comment mesurez-vous votre utilisation de la mémoire? –
Explorateur de processus de Windows Sysinternals, aussi gestionnaire de processus standard (ctrl alt del) – migajek
Quel compteur? L'utilisation de Mem du gestionnaire de tâches est inutile dans ce cas. La taille de la VM est meilleure dans ce cas. –