SOLVED

Anyone single 64-bit process only can be allocated 4GB memory in my WIN10.How to make it more?

Copper Contributor
I think there is a limit for a single process by the WIN10 system. How to cancel the limit or make it higher? PS: the command"bcdedit /set increaseuserva" is not useful.
2 Replies
best response confirmed by laxagy (Copper Contributor)
Solution

This 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.

@laxagy 

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.

1 best response

Accepted Solutions
best response confirmed by laxagy (Copper Contributor)
Solution

This 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.

@laxagy 

View solution in original post