Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Speichermanagement im low level bereich (https://www.delphipraxis.net/167272-speichermanagement-im-low-level-bereich.html)

Memnarch 20. Mär 2012 21:15

Speichermanagement im low level bereich
 
Guten Abend,
Wie allociere ich neuen speicher richtig, wenn ich z.B. in Assembler(Hier FASM, windows orientiert) unterwegs bin.
Habe in der MSDN von den Heap funktionen gelesen. Ist der Heap der richtige platz dafür?

Wie macht delphi dass, wenn ich speicher anfordere?


MFG
Memnarch

Luckie 20. Mär 2012 21:23

AW: Speichermanagement im low level bereich
 
Kommt drauf an. Globale Variablen und Objekte landen auf dem Heap. Lokale Variablen und Parameter auf dem Stack.

BUG 20. Mär 2012 22:34

AW: Speichermanagement im low level bereich
 
Wenn du daran denkst, explizit Speicher anzufordern, willst du in den meisten Fällen den Heap. Dafür ist das Ding da :wink:

himitsu 20. Mär 2012 22:41

AW: Speichermanagement im low level bereich
 
Wenn man bedenkt, daß man im Programm standardmäßig über einen virtuellen Speicherbereich verfügt und nicht direkt im realen RAM arbeitet...

MSDN-Library durchsuchenVirtualAlloc

Wobei man auch den Delphi-Speichermanager über Assembler ansprechen könnte. :stupid: (würde Speicherleckts leichter auffinden lassen, z.B. mit FastMM und Co.)

BUG 20. Mär 2012 23:21

AW: Speichermanagement im low level bereich
 
Zitat:

Zitat von himitsu (Beitrag 1157620)
Wenn man bedenkt, daß man im Programm standardmäßig über einen virtuellen Speicherbereich verfügt und nicht direkt im realen RAM arbeitet...
MSDN-Library durchsuchenVirtualAlloc

Das ist geeignet, wenn man irgendwelche Spezialanforderungen hat (selbst einen Heap programmieren, Page-alignten Speicher für Optimierungen, usw.).
Die Heapfunktionen sollten für normale Anwendungen völlig ausreichen.

Memnarch 21. Mär 2012 09:49

AW: Speichermanagement im low level bereich
 
Ah, sehr gut. Danke.
Werde ich dann mal ausprobieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz