Speicherverwaltung / Speicherverbrauch

Hallo,

mal schauen ob ihr mit Helfen könnt. Für die Uni programmieren wir gerade was fleissig in C/C++. Jetzt ist es so, dass unter Linux 32-Bit mein Programm 317 MB RAM braucht, unter Linux 64-bit 380 und unter Mac 10.8 mit 64-Bit 482! Die Differenz von Linux 32-Bit zu 64-bit lässt sich leicht mit der breiteren Adressweite und damit mehr Speicherverbrauch erklären. Aber was führt unter Mac dazu, dass der RAM verbrauch um 100 MB höher liegt?

Gruß

casio
 
Ausserdem verursachen Funktionalitäten wie Stack-Protection auch noch einen gewissen Überhang. Ein MacOSX ist nunmal kein Linux und entsprechend gibt es dort ein anderes Speicher-Handling.
 
Ein MacOSX ist nunmal kein Linux und entsprechend gibt es dort ein anderes Speicher-Handling.

Und dieser Unterschied würde mich interessieren. Kannst du das näher erläutern oder ein paar Links angeben? Was führt zu mehr RAM-Verbrauch bei Mac, bzw. ist es so wie in dem Link von CDW angegeben, dass die Messung unter Mac komplett anders ist? Interessant ist auch, wenn man das Programm schlafen lässt, die Nutzung des RAMs unter Mac um ca. die Hälfte abnimmt, bei Linux hingegen gleich bleibt. Verschiebt Mac da Teile in den Swap?
 
ist es so wie in dem Link von CDW angegeben, dass die Messung unter Mac komplett anders ist?
Was ich eigentlich meinte:
1. Du gibt halt nicht an, wie Du überhaupt misst (es gibt mehrere Ansätze) ;)
2. Auch bei scheinbar gleichen Ansätzen kann man die Ergebnisse unterschiedlich interpretieren:
Welchen Wert nimmt man überhaupt (VSIZE, RSize, ... )?
Von welchen Zusatzlibs ist die Anwendung abhängig? Sind diese auch gleich "groß" bzw ziehen weitere Abhängigkeiten nach sich, bzw. werden diese bei der Messung überhaupt gezählt? Usw.

Konkret z.B VSIZE "Problem":
OS X and virtual “bloat” | Justin Dolske’s blog
See details of an app's virtual size - Mac OS X Hints
Also eventuell vmmap/pmap nutzen und schauen, was genau belegt wird.
 
Zurück
Oben