Seite 1 von 1

Speicher Problem

Verfasst: Montag 4. April 2011, 23:04
von Mathek
Hallo zusammen,
ich habe einen PC (MacOS) mit 4 GB RAM. Trotzdem bekomme ich einen Error wenn Python ca. 1,7GB-2GB des RAMs verwendet.

Meine Frage:
1) Warum benutzt Python nicht noch den verbleibenden Speicher von ca. 1GB?
2) Warum schreibt Python nicht einfach in die ,,Auslagerungsdatei'' weiter.
3) Gibt es Einstellungen um Python mehr Speicher zu zuweisen?

PS: ich benutze easyEclipse und Python 2.7

Vielen Dank im Voraus
Mathek

Re: Speicher Problem

Verfasst: Montag 4. April 2011, 23:16
von Xynon1
:shock: - Die eigentliche Frage lautet doch: Was machst du das du soviel Speicher brauchst?

Re: Speicher Problem

Verfasst: Montag 4. April 2011, 23:20
von cofi
Xynon1 hat geschrieben::shock: - Die eigentliche Frage lautet doch: Was machst du das du soviel Speicher brauchst?
Nein, tut sie nicht.

Python begrenzt die Speichermenge nicht sondern nimmt was es kriegen kann, wenn es welchen braucht. Physischer Speicher hat auf den verbreiteten OS ueberhaupt nichts mit dem maximalen Speicher pro Prozess zu tun, dafuer ist das OS zustaendig.

Re: Speicher Problem

Verfasst: Montag 4. April 2011, 23:24
von deets
@Mathek

Ich habe zwar noch nie konkretes darueber gelesen (anders als bei Windows & Linux), aber OSX kann auch nicht hexen - darum die Frage: ist es denn auch ein 64-Bit-OSX, und wenn ja, benutzt du auch 64-Bit-Python?

Re: Speicher Problem

Verfasst: Montag 4. April 2011, 23:29
von Xynon1
@cofi
Um das Problem eventuell zu beheben schon. Es muss ja nicht zwangsläufig sein das man wirklich 2 GB RAM braucht, sondern das das einfach an einem kleinen Design-Fehler liegt. Es reicht ja schon ein "range" irgendwo hinzusetzen wo eigentlich ein "xrange" hin sollte.

Re: Speicher Problem

Verfasst: Dienstag 5. April 2011, 01:13
von cofi
@Xynon1: Oh da stimme ich schon mit dir ueberein, nur bleibt die Frage legitim, da es nun wirklich viele Einsatzgebiete gibt wo es kein Problem ist auf diese Datenmengen zu kommen.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 13:47
von Mathek
Danke für eure Antworten.

Ich wollte einfach ein Histogramm mit sehr, sehr,sehr vielen Daten plotten und das scheint nicht zu funktionieren.

@deets
OSX läuft auf 64-bit, aber Python nicht. Gibt es das überhaupt als 64-Bit Version?
Wie machen es denn die Unis? Die können doch auch alles berechnen lassen.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 14:50
von b.esser-wisser
Mathek hat geschrieben:OSX läuft auf 64-bit, aber Python nicht. Gibt es das überhaupt als 64-Bit Version?
Bestimmt, schau mal nach :twisted:

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 14:52
von DasIch
Zum einen kann ein Prozess nicht beliebig viel Speicher allokieren, zum anderen kann es sein dass durch Fragmentierung nicht mehr genug aneinander liegender Speicher zu Verfügung steht und deswegen Speicher fehlt.

PyPy benötigt prinzipiell weniger Speicher pro Objekt, eventuell kommt man damit hin.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 15:29
von Peak_me
Ich tippe darauf, dass wenn du die Speicherraubenden Programmstücke hier postest, einige Leute dir extrem nützliche Hinweise gegeben können, wie du den RAM-Bedarf von 1 GB auf 50 MB runterschrauben kannst.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 15:38
von deets
Mathek hat geschrieben:Danke für eure Antworten.

Ich wollte einfach ein Histogramm mit sehr, sehr,sehr vielen Daten plotten und das scheint nicht zu funktionieren.

@deets
OSX läuft auf 64-bit, aber Python nicht. Gibt es das überhaupt als 64-Bit Version?
Wie machen es denn die Unis? Die können doch auch alles berechnen lassen.
Ja, wie du sicher auch leicht haettest selbst rausfinden koennen. Und wenn wir mal annehmen, dass deine > 2GB Daten wirklich sein muessen, dann ist Python mit 32Bit auch die Erklaerung, warum du Probleme hast. Je nach OS kann ein Prozess auch bei ausreichendem Speicher nicht mehr als eine bestimmte Menge Speicher allozieren, weil in den Addressraum von 4GB irgendwelche Kernel-Bereiche gemappt werden, usw.

Eine kurze Suche bei Google hat ergeben, dass das Limit bei OSX angeblich wirklich 2GB ist (MSB wird als Diskriminator verwandt). Ich traue dem zwar nicht unbedingt, aber ein Indiz ist es.

Also, Python in 64 Bit besorgen, und nochmal gucken.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 15:39
von Rebecca
Ich wuerde mich fragen, ob ich die Daten alle auf einmal in den Speicher laden muss oder ob ich die auch nacheinander abklappern kann. Generatoren koennten da helfen.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 16:23
von Darii
deets hat geschrieben:Eine kurze Suche bei Google hat ergeben, dass das Limit bei OSX angeblich wirklich 2GB ist (MSB wird als Diskriminator verwandt). Ich traue dem zwar nicht unbedingt, aber ein Indiz ist es.
Nein, das Limit beim 32bit OSX ist 4 GB pro Prozess, das System selbst kann noch ein paar GB mehr verwalten (PAE). Aber dazu muss der Computer das unterstützen. Funktioniert also nur mit Mac die auf Santa Rosa oder neuer laufen…

Siehe auch: http://www.appleinsider.com/articles/08 ... indle.html

Nichtsdestotrotz sollten 2GB auf jeden Fall möglich sein, bezweifle, dass die Grafikkarte so groß ist.
Mathek hat geschrieben:OSX läuft auf 64-bit, aber Python nicht. Gibt es das überhaupt als 64-Bit Version?
Wie machen es denn die Unis? Die können doch auch alles berechnen lassen.
Das verwundert mich. Was verwendest du da für eine Version? Python ist unter Snow Leopard als 64/32bit Version vorinstalliert, wovon die 64bit-Version standardmäßig verwendet wird.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 16:27
von Darii
argh..mal wieder zitieren statt editieren gedrückt…

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 16:35
von noisefloor
Hallo,
Rebecca hat geschrieben:Ich wuerde mich fragen, ob ich die Daten alle auf einmal in den Speicher laden muss oder ob ich die auch nacheinander abklappern kann. Generatoren koennten da helfen.
Funktioniert das, wenn man eine Grafik plotet? Ich meine, die Grafik braucht ja am Ende doch alle Werte auf einmal... - oder habe ich da einen Denkfehler drin.

Gruß, noisefloor

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 16:54
von Darii
noisefloor hat geschrieben:Funktioniert das, wenn man eine Grafik plotet? Ich meine, die Grafik braucht ja am Ende doch alle Werte auf einmal... - oder habe ich da einen Denkfehler drin.
Jein, bei Grafiken sollte man die Menge der Datenpunkte halt begrenzen. Da bedankt sich sonst der pdf-Viewer wenn der 2 Mio. Linien Zeichen darf. Grundsätzlich ist mehr als ein Datenpunk pro Bildpunkt z.B. nicht zielführend. Wenn man das einhält knackt man nie im Leben die 2GB Marke.

Also Daten speichersparend verarbeiten und dabei Datenmenge sinnvoll reduzieren und man ist für lange Zeit erstmal seine Speicherprobleme los.

Re: Speicher Problem

Verfasst: Donnerstag 7. April 2011, 22:40
von noisefloor
Hallo,

gut, kein Denkfehler. :-)

Zumal der OP ja ein Histogramm erstellen will - das muss man ja so wie so keine Datenpunkte zeichnen, sondern erstmal nur die Verteilung zählen dann dann ein paar Balken oder eine Linie zeichnen.

Das (also das Zählen) geht wohl auch gut per Iterator, so dass man nicht alles in den Speicher laden muss.

Gruß, noisefloor

Re: Speicher Problem

Verfasst: Freitag 8. April 2011, 08:16
von Peak_me
Funktioniert das, wenn man eine Grafik plotet? Ich meine, die Grafik braucht ja am Ende doch alle Werte auf einmal... - oder habe ich da einen Denkfehler drin.
Textdateien kann man ja auch Stück für Stück aufbauen, das geht bei (unkomprimierten) Grafiken bestimmt auch.
Bei Grafiken, die komprimiert gespeichert werden, könnte man die Grafik eventuell in Fragmente unterteilen, die unabhängig voneinander komprimiert werden.