Comment déboguer une erreur MemoryError en Python? Des outils pour suivre l'utilisation de la mémoire?

J'ai un programme en Python qui meurt avec un MemoryError lorsque je de lui donner un gros fichier. Existe-il des outils que je pourrais utiliser pour comprendre ce à l'aide de la mémoire?

Ce programme fonctionnait bien sur les petits fichiers d'entrée. Le programme a bien besoin de quelques améliorations en termes d'évolutivité; je suis juste essayer de comprendre d'où. "De référence avant d'optimiser", comme une personne sage a dit une fois.

(Juste pour prévenir l'inévitable "ajouter plus de RAM" réponse: C'est en cours d'exécution sur un 32 bits WinXP boîte avec 4 go de RAM, de sorte que Python a accès à 2 go de mémoire utilisable. L'ajout de mémoire n'est pas techniquement possible. La réinstallation de mon PC avec Windows 64 bits n'est pas pratique.)

EDIT: Oups, c'est un doublon de Qui Python memory profiler est recommandé?

source d'informationauteur user9876