Aug 04 2020 09:41 AM
Aug 05 2020 12:06 AM - edited Aug 05 2020 01:03 AM
SolutionThis is not correct and there is no 4GB limit imposed by Windows 10 for any 64-bit process.
The limits are as follows on 64-bit Windows 10:
32-bit process w/o large address aware: 2GB
32-bit process with large address aware: 4GB
64-bit process w/o large address aware: 2GB
64-bit process with large address aware: 128TB
The large address aware flag ist a flag set by the linker when linking the compiled program. Normally every 64-bit executable should have it set. If not, you get a maximum of 2GB even for 64-bit processes.
If you want to test how much memory your system can allocate for a single 64-bit process, download testlimit64.exe from Microsoft Sysinternals and use the following command lines:
testlimit64.exe -m 1024
testlimit64.exe -d 1024
The first command will only allocate the virtual memory addresses and does not touch them, the second one also touches the memory. So the first one shows you what is possible with your system resources, the second one goes up to the limit your RAM and pagefile can handle.
Aug 05 2020 06:42 AM
Thank you for your reply.
It shoud be the fault of my memory test tool.
I confirm the value of one process memory in the task manager of windows. It is definitely more than 4GB.
Aug 05 2020 12:06 AM - edited Aug 05 2020 01:03 AM
SolutionThis is not correct and there is no 4GB limit imposed by Windows 10 for any 64-bit process.
The limits are as follows on 64-bit Windows 10:
32-bit process w/o large address aware: 2GB
32-bit process with large address aware: 4GB
64-bit process w/o large address aware: 2GB
64-bit process with large address aware: 128TB
The large address aware flag ist a flag set by the linker when linking the compiled program. Normally every 64-bit executable should have it set. If not, you get a maximum of 2GB even for 64-bit processes.
If you want to test how much memory your system can allocate for a single 64-bit process, download testlimit64.exe from Microsoft Sysinternals and use the following command lines:
testlimit64.exe -m 1024
testlimit64.exe -d 1024
The first command will only allocate the virtual memory addresses and does not touch them, the second one also touches the memory. So the first one shows you what is possible with your system resources, the second one goes up to the limit your RAM and pagefile can handle.