2

I am not sure if I was able to explain the question properly. But basically I am using a windows xp box 32 bit to deploy asp.net app to 64 bit windows server. The IIS server I am guessing is 64 bit process. Can the asp.net app use all the memory that is allowed from being a 64 bit server? or will it just use 4 GB max.

4 Answers 4

2

As asp.net is JIT-enabled, it will JIT-compile on the webserver upon page requests. Which means it should have no problem utilizing all the resources on your server.

3
  • 1
    Not if a site is pre-compiled or uses pre-compiled libraries.
    – squillman
    Oct 21, 2009 at 16:49
  • 1
    @squillman - precompiled .NET code and precompiled assemblies are just MSIL and so it won't actually matter (generally).
    – Kev
    Oct 22, 2009 at 18:58
  • 1
    ...and nicely explained by Jack below: serverfault.com/questions/76825/…
    – Kev
    Oct 22, 2009 at 18:59
1

A .net application by default will run in whatever environment it is in (either 32 bit or 64 bit). It is possible to force a platform in the properties of the project in

Build -> Platform Target: Any CPU, x86, x64

Forcing x86 will make the .net assembly run in 32 bit mode even on a 64 bit machine. The default build option is Any CPU.

So as long as your project is running Any CPU it will up itself to 64 bit mode on a 64 bit operating system and the appropriate memory access.

0

I'm not a .NET expert, and it's been a while since I worked with precompiled binaries, so take this with a grain of salt.

My understanding is sort of. The application itself will not be able to address a larger memory space than 32-bit. However, the OS should enable address translation that allows that block to exist anywhere in the OS's address space. So, the app will not be able to address more than it otherwise would, but more ram will be available for addressing.

Does that make sense?

2
  • Simply put, a 32-bit application can address 4GB of RAM, period. A 32-bit OS can, likewise, only manage 4GB of RAM, with the exception of one which has PAE support (Most Windows/Linux systems support this), in which case the parent OS can assign a 4GB block of memory to a process as it's pseudo-physical block of memory. In a 64-bit environment, you can address about 18.4 Exabytes, so that should be good for a while.
    – Kyle Smith
    Oct 21, 2009 at 18:55
  • Right. What he said. :-)
    – Ben Doom
    Oct 22, 2009 at 19:05
0

Simply put, a 32-bit application can address 4GB of RAM, period. ( I agree ...)

But I already told a few years ago that x86 can expand to 64 bits but it is a long story...

1
  • Think with me and follow the idea, if only one thread in the system will access an additional set of registers in a modified x86 processor it will work, the problem is task switch for different threads using the same 8 internal registers but if only one special thread will use these registers then no reason to save these new registers state, yes, the x86 could be expanded not only in registers but in memory addressable.
    – Arabcoder
    Oct 21, 2009 at 22:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .