"Jon Skeet [C# MVP]" <(E-Mail Removed)> wrote in message:
> John Vottero <(E-Mail Removed)> wrote:
>> That's the first time I've heard that. Why is 32bit the prefered mode
>> under
>> 64 bit windows?
It's not. No way, no how. If you're building .Net code, the preferred mode
is "Any CPU" so that the platform just doesn't matter. There are times (if
you're doing Interop, especially) when you would NEED to run x86 or x64 due
to dependency issues - and in these circumstances it's important that you
compile the right type of code.
Also, .NET Deployment projects have a need to be compiled for a specific
environment.
There's no concept of a "Any CPU" MSI file. This makes things more than a
bit frustrating, especially as MS-Build won't build MSI files. We've had to
create a full build system that pokes at files, resets platforms, used
devenv.exe to perform builds, and all sorts of other craziness...
> Presumably because all the references will only be 32 bits instead of
> 64, thus taking up half the space.
Our 64-bit compiled code is pretty much the same size as our 32-bit compiled
code.
For example, our 64-bit compiled (release mode) app is: 4095488 . The 32-bit
compiled (release mode) app is: 4091904
Memory footprints when things are running are also very close. We calculed a
"12 kb per user" (I don't remember the exact number) a while back on x86 for
a specific type of high-demand user (lots of roster items, managed groups,
etc) and when we moved to x64 we didn't see much in the way of change.
> I'm not sure I necessarily buy it
> though - I don't know enough about the execution model for 32 bit apps
> on a 64 bit processor, but I'd have *thought* you'd lose some of the
> speed of the processor, working in a mode it's not as tailored for. I
> could easily be wrong on that bit though.
I've signed all sorts of "Don't give out benchmark specifics without written
permission", so I can't go into any detail, but the current generation of
x64 chips, from a variety of vendors, running in x64 mode, are damn fast.
.... and with no memory limititations beyond the cost of the memory,
applications can be as memory hungry as they need to be.
--
Chris Mullins, MCSD.NET, MCPD:Enterprise
http://www.coversant.net/blogs/cmullins