[fpc-pascal] Maximum of memory which can be used by single program in 32 bit Windows

LacaK lacak at zoznam.sk
Thu May 19 08:46:57 CEST 2016


>> another question: is there any limit in FPC, which causes that only cca
>> 1GB of memory can be used by FPC ?
> No, but there is one that limits to 2GB.
Yes

>
> With {$peflags $20} in the main file that is increasable to 3GB (reportedly 4GB for 32-bits
> apps under 64-bit windows, but I never tested that)
Wow I never heared about such option.
This are my results:
(compiled application is Win 32 bit)

Before I have used this flag:
   Win7 32 bit with 4GB RAM: Out of memory at approx. 1 GB
   Win7 64 bit with 4GB RAM: Out of memory at approx. 1 GB

After I have used this flag:
   Win7 32 bit with 4GB RAM: Out of memory at 1 GB (no difference)
   Win7 64 bit with 4GB RAM: Success! (application consumes approx 1.8 
GB RAM, 1GB remains free)

Strange, does not ?
Why I still encounter 1 GB limit and not 2 GB without {$setpeflag $20} ?
Why on Win32 I still get Out of memory also with {$setpeflag $20} , but 
not on Win64 ?
Take into account, that both OSes have 4GB RAM and application is same.

According to 
https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778%28v=vs.85%29.aspx
it should be 2GB on 32bit and 4GB on 64bit Windows with 
*IMAGE_FILE_LARGE_ADDRESS_AWARE*

-Laco.



More information about the fpc-pascal mailing list