Can a process with a 32-bit compiled binary use more than 4 GB of memory?

Is it possible that a single process with a 32-bit compiled python version in Snow Leopard (a 64-bit machine) will consume> 4 GB (say, 5.4 GB) of virtual memory, as seen from the top command?

I did file ...pythonto see that the binary was not x86, but it seemed to consume more than 5 GB of memory.

My guess is that the libraries that were used (RPy) were “mmap'ing chunks of data”, and the cache in memory appeared under the memory protection of my process.

Or maybe I did not confirm that the Python binaries were 32 bits. Or maybe there is a 32-bit / 64-bit mix (libffi?).

Totally confused.

+3
source share
2 answers

No, it is physically impossible. This does not stop the OS from being assigned more than it can be used due to alignment and fragmentation, say, it can have a whole page, and not a map at all. However, it is impossible to actually use more than 4 GB for any process and, most likely, significantly less than for kernel space.

+2
source

, - // 32- , 32- , (Python , @DeadMG , .)

0

Source: https://habr.com/ru/post/1756462/


All Articles