Ben op het moment bezig om iets te maken in Python, maar loop vast op het geheugengebruik. Vanuit een XX aantal files van ongeveer 90MB per stuk creeer ik een array data. Na het inlezen staat het geheugengebruik om ongeveer 4GB, wat gezien het type data reeel is. Na het inlezen van de data worden er bewerkingen op gedaan en kan het geheugen vrijgegeven worden.
Dat laatste is echter niet het geval. Dat is een probleem want dat geheugen heb ik verderop in het programma hard nodig, waardoor het OS gaat swappen en de performance naar een dieptepunt zakt.
Als ik een test maak, waarin ik een list vul met een aantal MB aan data en vervolgens diezelfde list op Null zet of opnieuw initialiseer als lege list wordt het geheugen niet vrijgegeven.
Nu zijn er functies om handmatig de garbage collector te laten runnen, maar die geven niet het gewenste resultaat.
Iemand die hier ervaring meer heeft en kan uitleggen waarom dit gebeurt?
Dat laatste is echter niet het geval. Dat is een probleem want dat geheugen heb ik verderop in het programma hard nodig, waardoor het OS gaat swappen en de performance naar een dieptepunt zakt.
Als ik een test maak, waarin ik een list vul met een aantal MB aan data en vervolgens diezelfde list op Null zet of opnieuw initialiseer als lege list wordt het geheugen niet vrijgegeven.
Nu zijn er functies om handmatig de garbage collector te laten runnen, maar die geven niet het gewenste resultaat.
Iemand die hier ervaring meer heeft en kan uitleggen waarom dit gebeurt?