Sure it does, .NET (the CLR) is LARGEADRESSAWARE since v1.1. The only
problem is that the C# compiler doesn't have an option to set the
largeaddressaware flag, you have to edit the PE header using editbin.
editbin /largeaddressaware <some.exe>
Another option (framework V2)is to compile all modules as netmodules using
the /t:module compiler flag and use the linker (link.exe) to build the PE
file.
here is a sample of such linker command...
link /entry:someNamespace.someClass.Main /subsystem:console
/largeaddressaware some.netmodule someother.netmodule
in both cases you should see something like following when running dumpbin
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
452C1EAA time date stamp Wed Oct 11 00:28:58 2006
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
122 characteristics
Executable
Application can handle large (>2GB) addresses
32 bit word machine
Willy.
| I'm pretty sure .Net doesn't respects the /3gb switch.
|
| I haven't looked in a while, but I know we did quite a bit of performance
| tuning in 32-bit land a while back and were very crabby about this.
|
| Fortunatly 64-bit hardware came along, and life was good. I love
allocating
| 20+gb of memory!

|
| --
| Chris Mullins, MCSD.NET, MCPD:Enterprise
|
http://www.coversant.net/blogs/cmullins
|
|
|
| | > That is a windows issue not a C# issue ..There is a 2gb process limit in
| > windows ..
| >
| > see
| >
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt17.asp
| > search for /3 gb for instructions for how to make this larger.
| >
| > Cheers,
| >
| > Greg Young
| > MVP - C#
| >
http://codebetter.com/blogs/gregyoung
| >
| > | >> My system has 4GB memory and My program in C# is really memory
| >> consuming. and I noticed that when the memory I used is more than 2GB I
| >> will get an exception.
| >>
| >> How to solve this? thanks a lot
| >>
| >
| >
|
|