Jak debugować błąd MemoryError w Pythonie? Narzędzia do śledzenia wykorzystania pamięci?

Mam program w Pythonie, który umiera z błędem MemoryError, gdy dostarczam mu duży plik. Czy są jakieś narzędzia, których mogę użyć, aby dowiedzieć się, co korzysta z pamięci?

Ten program działa poprawnie na mniejszych plikach wejściowych. Program oczywiście wymaga pewnych ulepszeń skalowalności; Próbuję tylko dowiedzieć się gdzie. „Benchmark przed optymalizacją”, jak kiedyś powiedziała mądra osoba.

(Aby zapobiec nieuniknionej odpowiedzi „dodaj więcej pamięci RAM”: Działa na 32-bitowym polu WinXP z 4 GB pamięci RAM, więc Python ma dostęp do 2 GB użytecznej pamięci. Dodanie większej ilości pamięci nie jest technicznie możliwe. Ponowna instalacja komputera za pomocą 64 -bitowy Windows nie jest praktyczny.)

EDYCJA: Ups, to jest duplikatKtóry profiler pamięci Pythona jest zalecany?

questionAnswers(4)

yourAnswerToTheQuestion