Speicher Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Mathek
User
Beiträge: 9
Registriert: Dienstag 17. August 2010, 14:58

Montag 4. April 2011, 23:04

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
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Montag 4. April 2011, 23:16

:shock: - Die eigentliche Frage lautet doch: Was machst du das du soviel Speicher brauchst?
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Montag 4. April 2011, 23:20

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.
deets

Montag 4. April 2011, 23:24

@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?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Montag 4. April 2011, 23:29

@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.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dienstag 5. April 2011, 01:13

@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.
Mathek
User
Beiträge: 9
Registriert: Dienstag 17. August 2010, 14:58

Donnerstag 7. April 2011, 13:47

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.
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

Donnerstag 7. April 2011, 14:50

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:
DasIch
User
Beiträge: 2519
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Donnerstag 7. April 2011, 14:52

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.
Peak_me
User
Beiträge: 92
Registriert: Sonntag 27. Januar 2008, 03:09

Donnerstag 7. April 2011, 15:29

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.
deets

Donnerstag 7. April 2011, 15:38

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.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 7. April 2011, 15:39

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.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Donnerstag 7. April 2011, 16:23

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.
Zuletzt geändert von Darii am Donnerstag 7. April 2011, 16:34, insgesamt 4-mal geändert.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Donnerstag 7. April 2011, 16:27

argh..mal wieder zitieren statt editieren gedrückt…
Benutzeravatar
noisefloor
User
Beiträge: 2763
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Donnerstag 7. April 2011, 16:35

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
Antworten