What is the actual page size for a 32-bit process running on WOW64?

I know that the default page size for a 32-bit process running on 32-bit Windows is 4 KB, while for a 64-bit process running on 64-bit Windows, 8 KB. However, what is the actual page size of a 32-bit process running on 64-bit Windows (i.e. WOW64)? 4K? 8K?

+4
source share
3 answers

Page size is still 4K - 1M pages with a maximum address memory of 4 GB

The size of the virtual memory. WOW64 added significant overhead on the Intel Itanium processor if two or more instances of the same 32-bit application work simultaneously. This is due to the native 8 KB pages on Intel Itanium, which complicates the emulation of their own 4 KB pages in the x86 architecture (more pages are marked as writable; all pages that are writable are private to the process). This can adversely affect the scalability of Terminal Services on certain processors. This does not apply to the x64 processor.

Read more about WOW64 here.

+5
source

Ideally, you should call GetSystemInfo() and examine SYSTEM_INFO.dwPageSize .

Btw, I doubt that you have 8 KB pages on 64-bit Windows. X86 / 64 processors support pages in the following sizes: 4 KB (all modes), 4 MB (32-bit without PAE), 2 MB (32/64-bit PAE), 1 GB (64-bit, always PAE). This can be found in the processor manual from Intel (or AMD).

+7
source

The correct answer to this question is: "It depends on which processor."

Itanium uses 8 KB pages.

X86-32 and x86-64 use 4 KB, 2 MB, and 1 GB, respectively [note that for 2 MB and 1 GB of pages to work, memory must be a multiple of 2 MB / 1 GB and aligned up to 2 MB / 1 GB, respectively ].

Other processors, such as ARM (currently only a 32-bit OS), typically use 4KB pages, but can also use 64K pages.

If you can find the old DEC Alpha processor and operating system for matching, it will also use 8 KB pages.

+2
source

All Articles