4 Stimmen

Speicherleck beim Ausführen von Python in Mac OS Terminal

Ich habe gerade ein Python-Programm im Mac OS Terminal ausgeführt, und es gibt ein ungewöhnliches Speicherleck.

Das Programm ist so einfach:

for i in xrange(1000000000, 2000000000, 10):
  i2 = i \* i
  print i, i2, str(i2)\[::2\]
  if str(i2)\[::2\] == '1234567890':
    break

Wenn das Programm läuft, verbraucht es immer mehr Speicher, bis es meinen gesamten Speicher belegt. Wenn ich das Programm beende, verbraucht meine Terminal.app immer noch eine Menge Speicher, so dass ich vermute, es ist ein Fehler in Terminal.app?

Hat jemand ähnliche Erfahrungen gemacht?

15voto

matte Punkte 333

Dies ist kein Fehler, sondern eine Funktion. Terminal.app speichert, wie viele andere Terminalemulatoren, die letzten Ausgaben in einem Puffer, so dass Sie zurückblättern können (mit Seite hoch oder der Bildlaufleiste). Sie können die Größe dieses Puffers begrenzen, indem Sie unter Terminal -> Voreinstellungen -> Einstellungen das Limit für das Zurückblättern auf einen anderen Wert als Unbegrenzt setzen.

6voto

zneak Punkte 129366

Es ist nicht Python, das Speicherverluste verursacht. Sehen Sie genauer hin. Auf meinem Rechner bleibt der Python-Prozess bei ruhigen, stabilen 3,5 MB Speicher.

Der Anstieg des Speicherbedarfs, den Sie sehen, ist höchstwahrscheinlich darauf zurückzuführen, dass das Terminal die Ausgabe nie verwirft. Sie können dieses Verhalten ändern, indem Sie unter Voreinstellungen, Einstellungen die maximale Zeilenzahl auf etwas anderes als "Unbegrenzt" einstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X