Limit RAM-Auslastung in python Programm

Ich versuche, die Begrenzung der RAM-Auslastung aus einem Python-Programm um die Hälfte, damit es nicht ganz gefriert, wenn alle RAM verwendet wird, für diese ich bin mit dem folgenden code, der nicht funktioniert und mein laptop ist immer noch eingefroren:

import sys
import resource

def memory_limit():
    rsrc = resource.RLIMIT_DATA
    soft, hard = resource.getrlimit(rsrc)
    soft /= 2
    resource.setrlimit(rsrc, (soft, hard))

if __name__ == '__main__':
    memory_limit() # Limitates maximun memory usage to half
    try:
        main()
    except MemoryError:
        sys.stderr.write('MAXIMUM MEMORY EXCEEDED')
        sys.exit(-1)

Ich bin mit anderen Funktionen, die ich nenne, aus der main Funktion.

Was mache ich falsch?

Vielen Dank im Voraus.

PD: ich such schon über das gefunden und den code habe ich aber es funktioniert immer noch nicht...

  • Vielleicht möchten Sie ulimit oder prlimit außerhalb der Python-Skript. Oder ein Speicher begrenzt cgroup und führen Sie das Skript gibt. Ich bin mir nicht sicher, versuchen, sich selbst zu begrenzen ist die beste Idee - was passiert, wenn der code, der versucht, zu überprüfen oder durchzusetzen, die Grenze muss, um Speicher in den Prozess?
  • Haben Sie versucht, die soft /= 100 oder weich //= 2 ?
  • wenn ich, dass es sagt, verlässt zu früh @Gribouillis
  • warum ist alle Ihre RAM verwendet? Sind Sie laden eine Menge von Daten in den Speicher? Haben Sie versucht, mit Generatoren?
  • es ist für eine Universität die Hausaufgaben, die wir generieren müssen, ein Baum mit einer DFS straetgy das Gerät in eine unendliche Schleife, weil der task-Anweisung.
InformationsquelleAutor Ulises CT | 2016-12-12
Schreibe einen Kommentar