Ga terug

Geheugenprofilering in Python

Bij het profileren van applicaties zijn CPU en geheugen vaak een probleem. Voor Data Science en machine learning applicaties wordt veel met Python gewerkt. Omdat er met enorme hoeveelheden data gewerkt wordt, neemt dit veel geheugenbeheer in. Wanneer er met Pyhton gewerkt wordt, maakt Python automatisch gebruik van het standaard geheugensysteem. i.p.v. het aan de gebruiker over te laten. Door het vertrouwen over te laten in de computer, neemt de gebruiker een riskant risico.

Om zelf controle te krijgen over het geheugenbeheer binnenPython, maken we een speciale module aan met de naam ‘memory-profiler’. Voor het opzetten van van deze module, maken wij gebruik van de module bibliotheek die door Fabian Pregosa en andere bijdragers is opgezet. Deze module is binnen Python afhankelijk van standaard bibliotheken zoals psutil-module. Toch is het belangrijk om te onthouden dat er voor het profileren van geheugengebruik ook andere methoden zijn zoals cProfile, Tracemalloc enz.

De reden dat wij voor deze speciale bibliotheek kiezen is vanwege de gemakkelijk en begrijpelijke structuur. Zo kunnen met behulp van deze structuur binnen onze Python-bestand regel voor regel inzien. Hierdoor kunnen we gemakkelijk ons geheugengebruik ‘loggen’.

Om verder te kunnen gaan moeten we eerst het pakket met ‘pip’ installeren. De naam van dit pakket is: pip install –U memory_profiler. Vervolgens kunnen we beginnen met het controleren van de voorbeeldimplementatie zoals hieronder is afgebeeld.

Na de bovenstaande stap uitgevoerd te hebben, kunnen we nu binnenons bestand het geheugengebruik per regel inzien. Zie de onderstaande schermafbeelding:

OPMERKING: Deze processen zijn uitgevoerd met de Python versie 3.9.2.

Bronnen:

https://pypi.org/project/memory-profiler/

https://github.com/pythonprofilers/memory_profiler

https://towardsdatascience.com/profile-memory-consumption-of-python-functions-in-a-single-line-of-code-6403101db419?gi=f648adf9b303

https://pythonrepo.com/repo/pythonprofilers-memory_profiler-python-monitoring

Delen

Onze expertises