Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Compilerschalter - 3GB nutzbarer Speicher (https://www.delphipraxis.net/155358-compilerschalter-3gb-nutzbarer-speicher.html)

Neutral General 20. Okt 2010 10:35

Compilerschalter - 3GB nutzbarer Speicher
 
Hallo,

Z.B. in diesem Thread wurde angesprochen, dass es möglich ist einem Programm 3GB der 4GB virtuellen Speichers zur Verfügung zu stellen.

Kann mir jemand sagen wie das funktioniert?

Ist nicht so, dass mir der Speicher ausgeht.. Bräuchte das nur für ein kleines Experiment.

himitsu 20. Okt 2010 10:50

AW: Compilerschalter - 3GB nutzbarer Speicher
 
Bei Google suchen3 GB Delphi :angle2:
z.B. http://cc.embarcadero.com/Item/24309

also
Delphi-Quellcode:
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
.
oder über die Projektoptionen
Menü > Projekt > Optionen... > Delphi-Compiler > Linken > Zusätzliche PE-Header-Flags setzen = $0020

PS:
Zitat:

Zitat von Neutral General (Beitrag 1056663)
Z.B. in diesem Thread wurde ...

http://www.delphipraxis.net/1047936-post9.html ... siehe Beispielcode :zwinker:

hathor 20. Okt 2010 11:14

AW: Compilerschalter - 3GB nutzbarer Speicher
 
Das ist KEIN Compilerschalter, sondern ein Eintrag in der BOOT.INI.
http://support.microsoft.com/kb/q328882/
http://www.winfaq.de/faq_html/Conten...?h=tip0408.htm

Hinweis:
USERVA=

Mit diesem Parameter wird der Parameter /3GB noch genauer eingestellt.
Sie geben mit diesem Parameter an, wie viel virtueller Adressbereich für Anwendungen bereitgestellt wird.

Sie können hier Werte zwischen 2048 und 3072 angeben.
Der Parameter wird nur im Zusammenhang mit /3GB ausgewertet.

himitsu 20. Okt 2010 11:23

AW: Compilerschalter - 3GB nutzbarer Speicher
 
OK, sagen wir es mal so,
es ist sowohl als auch.

Denn selbst wenn das System dafür ausgelegt ist, wird aus Kompatibilitätsgründen dieses nur bei Programmen angewendet, welche auch explitit dafür kompiliert sind, also wo dieses Flag gesetzt ist.


Einmal muß man im Programm dieses aktivieren, bzw. es muß im PE-Header drinstehn, damit Windows dieses beim Programmstart aktiviert.

Und es muß im Windows aktiviert sein, damit dieses bei Programmen genutzt werden kann.

Allerdings scheint es so, als wenn Windows dieses auch selbst aktivieren kann (für sich), dann ich hab nur 4 GB RAM, keine Auslagerungsdatei und ich hab es nicht selbst (über diesen Bootschalter) aktiviert.
Und dennoch kann ich mehr als 2 GB für meine Programme nutzen.


Abgesehn davon sollte dieser Windows-Boot-Schalter nur für den physischen Speicher (RAM) da sein
und das PE-Flag wird für den virtuellen (Programm)Speicher verwendet.

Neutral General 20. Okt 2010 12:47

AW: Compilerschalter - 3GB nutzbarer Speicher
 
Hallo,

Den Compilerschalter hab ich jetzt eingebaut.

Delphi-Quellcode:
VirtualAlloc(Pointer($80000000),4096,MEM_RESERVE or MEM_COMMIT, PAGE_EXECUTE_READWRITE);
gibt mir allerdings nil zurück. (GetLastError = "Falscher Parameter").

Habe jetzt in Windows nichts umgestellt. Habe Windows Vista. Gibts da die boot.ini (unter diesem Namen) überhaupt?

hoika 20. Okt 2010 13:16

AW: Compilerschalter - 3GB nutzbarer Speicher
 
Hallo,

http://www.cadforum.cz/cadforum_en/qaID.asp?tip=5551


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.

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