Wie groß ist der Freispeicher?



  • Wie groß ist der Freispeicher? Nehmen wir als Beispiel ein 512 MB grossen Arbeitsspeicher.

    Die allgemeine Prozentangabe wäre auch hilfreich (um die Größe bei kleineren/größeren Arbeitsspeichern berechnen zu können).



  • Was ist "Freispeicher"? 😕



  • Der Ort, wo new und delete wirken. Siehe: http://www.gotw.ca/gotw/009.htm

    @heap:
    Die Größe des Freispeichers hat nichts mit der Größe des physischen Speichers (Arbeitsspeichers) zu tun. Es gibt da keinen festen Prozentwert.



  • Keine feste Größe? 😞

    Dann kann es also sein, dass ich schon einen Nullzeiger zurückbekomme, wenn ich beim zweiten mal ein Objekt in den Freispeicher lege?



  • ist zwar unwahrscheinlich, aber:
    jepp



  • Die feste Größe würde Dir ja auch nichts nützen - nehmen wir an, es wären 1.000.000.000 Bytes. Theoretisch kannst Du jetzt 100000 Objekte mit 10000 Bytes speichern. Nun startest Du parallel MS Office, was ungefähr 400.000.000 Bytes klaut. Und nun?



  • Die größe des Freispeichers ist je nach Systemhardware festgelegt. Theoretisch kannst du davon ausgehen, dass du auf modernen system theoretisch 4GB (x86er) und mehr reservieren kannst (weil der Adressspace nicht mehr her gibt).

    Ich glaube aber kaum, dass du bei normalen Programmen damit irgend welche Probleme bekommst. Interessant wird das eher bei embedded systemen, wo du mit nen paar kb Speicher auskommen musst. Auf normalen System hast du ja idr. nie 4GB im freispeicher (und wenn, dann ist das so eine besondere Anwendung, dass die eh nur auf unbezahlbaren 64Bit Unix-Workstation|Supercomputern arbeiten, die mehrere Terrabyte Speicher haben können).



  • Freispeicher/Heap? Ist da bei einem normalen PC wirklich ein Unterschied?
    Wenn man - sagen wir mit Dev-C++ oder MSVC++ - ein Objekt mittels new anlegt, dann landet das doch in dem frei zugänglichen Speicher, der normalerweise als Heap/Halde bezeichnet wird (Arbeitsspeicher, Auslagerung auf Festplatte).



  • heap und free store dürften sich idr. nicht unterscheiden. Nur dass man eben das wo new/delete arbeiten free store nennt um es von malloc/free zu trennen. Siehe auch den gotw Artikel


Log in to reply