Al said:
Does a 32-bit application run on a 64 bit machine use any sort of a
compatibility layer, not that this is a horrible thing.
Has anyone benchmarked the performance of a heavy application such as
32-bit Photoshop under 32-bit and 64-bit Windows?
(I dunno if there *is* a 64-bit build of Photoshop yet.)
As others have pointed out, WoW64 is what is used to run 32-bit apps
under 64-bit Windows. However, it's not an emulation layer, it's just a
remapping layer. In computer science they call it "thunking". It takes
32-bit application calls and simply redirects them to the 64-bit API,
properly formatted and mapped to the right memory addresses. All 32-bit
system DLL's are simply just stub binaries that do this thunking,
passing it on to the appropriate 64-bit DLL's.
One thing to note is that all 32-bit apps will be mapped to their own
individual full 32-bit environment in 64-bit Windows. In a native 32-bit
Windows, each app would get only a partial section of a single 32-bit
memory map. So each app will think it is the only thing running on the
machine and have access to more memory by themselves.
So regarding whether there is a performance difference between 32-bit
apps in 64-bit Windows, it probably depends on what the 32-bit app is
limited by. If the app makes a lot of system calls, then it might be
limited by the thunking process, which I expect to add maybe less than
1% in overhead to the system calls. If the app is memory limited, then
it's going to find it's faster under 64-bit Windows.
Yousuf Khan