Hallo, ich habe auf einem Raspberry Pi Speicher für einen mehrseitigen Text allokiert und deallokiert. Das Ergebnis habe ich mit /proc/mem in der Erwartung überprüft, dass der zur Verfügung stehende Speicherplatz beim Allokieren um einen gewissen Betrag weniger und beim Deallokieren wieder mehr geworden ist. Nach einem kompletten Zyklus von Allokieren und Deallokieren habe ich eigentlich erwartet, wieder auf demselben Betrag an freiem Speicher rauskommen, mit dem ich angefangen habe. Leider ist dem nicht so. Das von /proc/mem angezeigte scheint eher zufällig zu sein und in keinem Kausalzusammenhang mit meinem Allokieren / Deallokieren zu stehen. Was mache ich falsch?
:
Bearbeitet durch User
Michael schrieb: > dem nicht so. Das von /proc/mem angezeigte scheint eher zufällig zu sein /proc/mem ist wohl daselbe wie /proc/meminfo auf einem Ubuntu-System. Und damit vermisst Du leider global das Gesamtsystem, und nicht nur das, was Dein Programm macht. Da spuckt Dir also alles mögliche in die Suppe, was auf dem Ding läuft ... Du musst also /proc/<pid>/mem auslesen, damit Du nur Deinen Prozess siehst ... Edit: /proc/<pid>/mem scheint bei mir nix auszugeben. Naja, muss man wohl doch anders abfragen. Z.B. "ps aux" -> VSZ ...
:
Bearbeitet durch User
man 5 proc_pid_statm man 5 proc_pid_status könnten helfen. Edit: Man darf auch direkt im Programm ausgeben, ohne externe tools.
1 | #!/usr/bin/python3
|
2 | # vim: fileencoding=utf-8: ts=4: sw=4: expandtab:
|
3 | import os |
4 | with open(f'/proc/{os.getpid()}/status') as fr: |
5 | for line in fr.readlines(): |
6 | print(line,end='') |
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.