Wie viel dynamischen Speicher kann eine Anwendung allokieren?

Post Reply
Message
Author
Hank
Posts: 18
Joined: 25. Jun 2007 15:16

Wie viel dynamischen Speicher kann eine Anwendung allokieren?

#1 Post by Hank »

Moin!

Eventuell benötige ich in einer Anwendung eine ganze Menge an dynamischen Speicher. Könnten durchaus mehrere hundert MB sein.

Ist es unter Linux möglich, so viel dynamischen Speicher mittels malloc() zu allokieren? Weiss jemand, wo dort die Grenzen liegen? Oder hat jemand eine bessere Idee? Das Problem ist, dass der Speicherbedarf über der Zeit stetig zunehmen wird, es also früher eher später sowieso an die Grenze geht, aber besser später als früher... ;-)

Vielen Dank und freundliche Grüße
Hank

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi!

malloc kann bis zu 4 GB Speicher allkoieren, doch es gibt noch andere Begrenzungen. Auf 32-Bit-Systemen steht Anwendungen max. 2 GB zur Verfügung, da bin ich mir nicht ganz sicher und es könnte mit entsprechenden Kernel-Optionen auch mehr sein.

Ferner kann der Administrator noch ein Systemweites Limit für die Speicherverwendung von Prozessen setzen. Das siehst du mit ulimit. Normalerweise ist es aber unbegrenzt.

Wenn die Summe aus tatsächlich vorhandenem Speicher und Swap stellt ein weiteres Limit dar. Wenn nicht genug RAM zur Verfügung steht, kann man sich mit Swap behelfen, der beliebig groß werden kann. Wenn es tatsächlich zum Swappen kommt, kann das die Performance so beeinträchtigen, dass hier das endgültige Limit ist.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply