Programmieren RAM Nutzung optimieren?
Ich programmiere in meiner Freizeit gerne Python Programme. Nun da ich recht neu im Programmieren bin und gerne optimiert programmieren würde, möchte ich analysieren, ob mein Programm Speicherplatz schonend geschrieben ist. Wie kann ich nun herausfinden, ob die RAM-Nutzung verhältnismässig ist oder nicht?
Denn 20 MB für ein kleines GUI Programm, welches mir lediglich den umgerechneten Wert einer Währung in eine andere zurückgibt, hört sich für mich nach zu viel an.
Ich bedanke mich bereits im Voraus für eure Antworten.
3 Antworten
Das dürfte dir helfen:
import os, psutil
process = psutil.Process(os.getpid())
print(process.memory_info().rss)
Wenn du das einfach z.B. als Funktion hinzufügst am ende oder mittendrin und dann einmal nachguckst wie viel dein Programm zieht (Angabe in Bytes).
Quelle: https://stackoverflow.com/questions/938733/total-memory-used-by-python-process
Seltsam, während mir die Konsole 50 MB ausgibt, gibt mir Taskmanager 40 MB aus, obwohl bei Diskauslagerung 0 steht. Jedenfalls lass ich das mit dem Speichermanagement wohl vorerst mal sein und kümmere mich wieder darum, wenn ich erfahrener bin. Trotzdem Danke für die Antwort.
Das wird bei High-Level Programmiersprachen wie Python die ihren Memory weitesgehend selber managen etwas schwer, 20 MB hört sich aber nicht so schlecht an.
Wenn du später mal mehr Erfahrung hast und dich manuelles Memory-Management interessiert wird ein Blick in die Richtung von Low-Level Programmiersprachen wie C/C++ interessant, ist aber alles andere als "anfängerfreundlich.
Lern ersteinmal das programmieren selber und mach dir weniger Gedanken über Memory Management, das kommt später 👍
Die Python Laufzeitumgebung belegt schon einiges an RAM - da kannst du nicht wirklich viel machen.
Wichtiger wäre, dass du dir klar machst, wie dein Programm mit deinen Daten umgeht, wie die Algorithmen funktionieren, die du implementierst, damit du dort nicht unnötig viel Speicher verwendest.