473,385 Members | 2,180 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

Editbin /LARGEADDRESSAWARE

My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE against
the EXE and then deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will be
converted to be LARGEADDRESSAWARE at setup creation time.

Thanks.
Jan 9 '07 #1
8 22018
Hello,

So far, I didn't see any reported problem caused by "Editbin
/LARGEADDRESSAWARE" against an .NET assembly. It will indicate that the
assembly can handle addresses larger than 2 gigabytes and this is required
on a 64-bit system. Anyway, since your application will be deploy on both
32-bit and 64-bit system, there may be some potential issues. You need to
perform complete test on these two platform including the setup process.

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 10 '07 #2
Luke Zhang [MSFT] wrote:
Hello,

So far, I didn't see any reported problem caused by "Editbin
/LARGEADDRESSAWARE" against an .NET assembly. It will indicate that the
assembly can handle addresses larger than 2 gigabytes and this is required
on a 64-bit system. Anyway, since your application will be deploy on both
32-bit and 64-bit system, there may be some potential issues. You need to
perform complete test on these two platform including the setup process.
Wow, this makes no sense. You are saying that a .NET 2.0 compiled
executable won't be able to access more than 2 GB of RAM on a 64-bit OS,
unless it's been tweaked with 'Editbin /LARGEADDRESSAWARE'???

My understanding is that out of the box .NET 2.0 compiled EXEs can
access 1TB of RAM (or some such ridiculous number) on a 64-bit OS.

But to be able to access 3GB on a 32-bit OS, you had to run the EXE
through 'Editbin /LARGEADDRESSAWARE'.

Is this not the case?
>
Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
Jan 10 '07 #3
"Frank Rizzo" <no**@none.comwrote in message news:em**************@TK2MSFTNGP03.phx.gbl...
My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE against the EXE and then
deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will be converted to be
LARGEADDRESSAWARE at setup creation time.

Thanks.

Question is - why do you 'flag' this application to be LARGEADDRESSAWARE?
Does the application really needs more than the default 2GB VAS?
What target platform (AnyCPU, x86, x64) did you specify while compiling?
Following illustrates the effect of the target platform and the LAA flag on the VAS:

AnyCpu (default)
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = xTB (default)
x86
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = 2GB (default)
64 bit OS LAA VAS = 4GB
x64
64 bit OS VAS = xTB

LAA = LARGEADDRESSAWARE
x = 6 or 7 TB

It's clear that you need to know your specific VAS requirements before you can decide to
apply the LAA flag.
It's obvious that your application will need to restrict it's VAS requirements to < 3GB,
otherwise it won't run on 32Bit. However, if you apply the LAA on an AnyCpu target, nothing
stops it from consuming more than 3GB on 64 bit, that's why I would never compile with the
AnyCpu flag if I have very specific memory requirements.

Willy.

Jan 10 '07 #4
Willy Denoyette [MVP] wrote:
"Frank Rizzo" <no**@none.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
>My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE
against the EXE and then deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will be
converted to be LARGEADDRESSAWARE at setup creation time.

Thanks.


Question is - why do you 'flag' this application to be LARGEADDRESSAWARE?
Does the application really needs more than the default 2GB VAS?
What target platform (AnyCPU, x86, x64) did you specify while compiling?
Following illustrates the effect of the target platform and the LAA flag
on the VAS:

AnyCpu (default)
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = xTB (default)
x86
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = 2GB (default)
64 bit OS LAA VAS = 4GB
x64
64 bit OS VAS = xTB

LAA = LARGEADDRESSAWARE
x = 6 or 7 TB

It's clear that you need to know your specific VAS requirements before
you can decide to apply the LAA flag.
It's obvious that your application will need to restrict it's VAS
requirements to < 3GB, otherwise it won't run on 32Bit. However, if you
apply the LAA on an AnyCpu target, nothing stops it from consuming more
than 3GB on 64 bit, that's why I would never compile with the AnyCpu
flag if I have very specific memory requirements.
Willy, thank you for your reply. It's informative as always. In
answers to questions you posed:

1. Yes, the application does need more than 2GB of RAM for some of my
larger customers. Usually the application consumes 2.1-2.3GB at the
most. Typically, the customers have multi-proc boxes with around 6-8 GB
of RAM. However, some of these customers have 32-bit boxes, others have
64-bit. And I don't know who has what, so I need to cover all the
bases. Thus I specify AnyCPU.

2. So I need to make sure, that if customer has a 32-bit box, they can
access more than 2GB of RAM.

3. So I figured that if I marked an AnyCPU executable with LAA, then
I'll be covering all bases. If the user installed the app on a 32-bit
box, they would be able to use 3GB of RAM. If the app was installed on
the 64-bit box, they would use xTB of RAM.

Am I wrong?

Regards

>
Willy.
Jan 10 '07 #5
One more unrelated question. When deploying a 32-bit LAA enabled EXE to
the 64-bit OS, does the machine need the /3GB flag in order to access
4GB of RAM?

Regards
Willy Denoyette [MVP] wrote:
"Frank Rizzo" <no**@none.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
>My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE
against the EXE and then deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will be
converted to be LARGEADDRESSAWARE at setup creation time.

Thanks.


Question is - why do you 'flag' this application to be LARGEADDRESSAWARE?
Does the application really needs more than the default 2GB VAS?
What target platform (AnyCPU, x86, x64) did you specify while compiling?
Following illustrates the effect of the target platform and the LAA flag
on the VAS:

AnyCpu (default)
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = xTB (default)
x86
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = 2GB (default)
64 bit OS LAA VAS = 4GB
x64
64 bit OS VAS = xTB

LAA = LARGEADDRESSAWARE
x = 6 or 7 TB

It's clear that you need to know your specific VAS requirements before
you can decide to apply the LAA flag.
It's obvious that your application will need to restrict it's VAS
requirements to < 3GB, otherwise it won't run on 32Bit. However, if you
apply the LAA on an AnyCpu target, nothing stops it from consuming more
than 3GB on 64 bit, that's why I would never compile with the AnyCpu
flag if I have very specific memory requirements.

Willy.
Jan 10 '07 #6
"Frank Rizzo" <no**@none.comwrote in message
news:%2****************@TK2MSFTNGP06.phx.gbl...
One more unrelated question. When deploying a 32-bit LAA enabled EXE to the 64-bit OS,
does the machine need the /3GB flag in order to access 4GB of RAM?
Nope.

Willy.

Jan 10 '07 #7
"Frank Rizzo" <no**@none.comwrote in message news:uP*************@TK2MSFTNGP06.phx.gbl...
Willy Denoyette [MVP] wrote:
>"Frank Rizzo" <no**@none.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
>>My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE against the EXE and
then deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will be converted to be
LARGEADDRESSAWARE at setup creation time.

Thanks.


Question is - why do you 'flag' this application to be LARGEADDRESSAWARE?
Does the application really needs more than the default 2GB VAS?
What target platform (AnyCPU, x86, x64) did you specify while compiling?
Following illustrates the effect of the target platform and the LAA flag on the VAS:

AnyCpu (default)
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = xTB (default)
x86
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = 2GB (default)
64 bit OS LAA VAS = 4GB
x64
64 bit OS VAS = xTB

LAA = LARGEADDRESSAWARE
x = 6 or 7 TB

It's clear that you need to know your specific VAS requirements before you can decide to
apply the LAA flag.
It's obvious that your application will need to restrict it's VAS requirements to < 3GB,
otherwise it won't run on 32Bit. However, if you apply the LAA on an AnyCpu target,
nothing stops it from consuming more than 3GB on 64 bit, that's why I would never compile
with the AnyCpu flag if I have very specific memory requirements.

Willy, thank you for your reply. It's informative as always. In answers to questions you
posed:

1. Yes, the application does need more than 2GB of RAM for some of my larger customers.
Usually the application consumes 2.1-2.3GB at the most. Typically, the customers have
multi-proc boxes with around 6-8 GB of RAM. However, some of these customers have 32-bit
boxes, others have 64-bit. And I don't know who has what, so I need to cover all the
bases. Thus I specify AnyCPU.
If you never need more than 4GB, you better specify X86 as target. On a 32 bit OS you will
get up to 3GB while on 64 bit you'll get up to 4GB VAS.
2. So I need to make sure, that if customer has a 32-bit box, they can access more than
2GB of RAM.
This requires the/3GB boot.ini switch.
3. So I figured that if I marked an AnyCPU executable with LAA, then I'll be covering all
bases. If the user installed the app on a 32-bit box, they would be able to use 3GB of
RAM. If the app was installed on the 64-bit box, they would use xTB of RAM.
Right, but if you memory requirements are < 3GB (as they are), so you don't need the address
extention feature of the 64bit platform (HW and OS) anyway.
That's why I said you better target x86, that way you are sure that both run the exact same
code (both use the JIT32), both have the same memory footprint, that is the same workingset,
virtual bytes, stack requirements etc. and both use the same framework code on both 32 and
64 bit.

Willy.


Jan 10 '07 #8
Willy Denoyette [MVP] wrote:
"Frank Rizzo" <no**@none.comwrote in message
news:uP*************@TK2MSFTNGP06.phx.gbl...
>Willy Denoyette [MVP] wrote:
>>"Frank Rizzo" <no**@none.comwrote in message
news:em**************@TK2MSFTNGP03.phx.gbl...
My .NET 2.0 app may be deployed on both 32-bit and 64-bit systems.
Are there any side effects to running Editbin /LARGEADDRESSAWARE
against the EXE and then deploying it on a 64-bit system?

The reason I ask is that there is just one setup and the .EXE will
be converted to be LARGEADDRESSAWARE at setup creation time.

Thanks.
Question is - why do you 'flag' this application to be
LARGEADDRESSAWARE?
Does the application really needs more than the default 2GB VAS?
What target platform (AnyCPU, x86, x64) did you specify while compiling?
Following illustrates the effect of the target platform and the LAA
flag on the VAS:

AnyCpu (default)
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = xTB (default)
x86
32 bit OS VAS = 2GB (default)
32 bit OS LAA VAS = 3GB
64 bit OS VAS = 2GB (default)
64 bit OS LAA VAS = 4GB
x64
64 bit OS VAS = xTB

LAA = LARGEADDRESSAWARE
x = 6 or 7 TB

It's clear that you need to know your specific VAS requirements
before you can decide to apply the LAA flag.
It's obvious that your application will need to restrict it's VAS
requirements to < 3GB, otherwise it won't run on 32Bit. However, if
you apply the LAA on an AnyCpu target, nothing stops it from
consuming more than 3GB on 64 bit, that's why I would never compile
with the AnyCpu flag if I have very specific memory requirements.

Willy, thank you for your reply. It's informative as always. In
answers to questions you posed:

1. Yes, the application does need more than 2GB of RAM for some of my
larger customers. Usually the application consumes 2.1-2.3GB at the
most. Typically, the customers have multi-proc boxes with around 6-8
GB of RAM. However, some of these customers have 32-bit boxes, others
have 64-bit. And I don't know who has what, so I need to cover all
the bases. Thus I specify AnyCPU.

If you never need more than 4GB, you better specify X86 as target. On a
32 bit OS you will get up to 3GB while on 64 bit you'll get up to 4GB VAS.
>2. So I need to make sure, that if customer has a 32-bit box, they can
access more than 2GB of RAM.
This requires the/3GB boot.ini switch.
>3. So I figured that if I marked an AnyCPU executable with LAA, then
I'll be covering all bases. If the user installed the app on a 32-bit
box, they would be able to use 3GB of RAM. If the app was installed
on the 64-bit box, they would use xTB of RAM.
Right, but if you memory requirements are < 3GB (as they are), so you
don't need the address extention feature of the 64bit platform (HW and
OS) anyway.
That's why I said you better target x86, that way you are sure that both
run the exact same code (both use the JIT32), both have the same memory
footprint, that is the same workingset, virtual bytes, stack
requirements etc. and both use the same framework code on both 32 and 64
bit.

Ah, understood. I couldn't grok previously why you were recommending a
specific flag. Now it makes sense.

Regards
Jan 10 '07 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: KalleD | last post by:
Hi, I need to use a lot of memory in an aplication. But I get OutOfMemoryException whenever I try to allocate more than around 1.2GB. Ex: byte c=new byte; My computer (win xp) have 4GB of RAM...
1
by: Dave Booker | last post by:
I am using VS2003. How can I compile a (32-bit) C# project so that the program can use more than 2GB of memory space? I came across a /3G compile option searching on this subject, that is...
2
by: Thomas Lykke Petersen | last post by:
The setup is a Windows 2003 Server (Standard) with the /4GT (/3GB) switch turned on which should enable ~3GB of memory for user processes and only ~1GB for windows processes. Is it possible to...
13
by: fAnSKyer/C# newbie | last post by:
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
13
by: Frank Rizzo | last post by:
I will soon be deploying an application on Windows 2003 R2 64-bit Standard Edition. The app will also be compiled for 64-bit. One of the reasons is that the application will really benefit from...
2
by: Frank Rizzo | last post by:
Ok, it is easy enough to set a binary to be LARGEADDRESSAWARE. But how can I find out whether the binary has been set to LARGEADDRESSAWARE or not? Thanks.
4
by: Daniel | last post by:
is there some per-process-limit on memory in .net processes? is there any way to increase it? i keep getting System.OutOfMemoryException when my box has 8 gigs of unused memory.
3
by: powwow | last post by:
I am running out of memory (OutOfMemoryException) when I do something like this: Hashtable h = new Hashtable(10000000); It doesn't seem to use all of the RAM on the machine. I have 4GB of...
0
by: Wily | last post by:
Hello, I'm using .net 3.5 and c#, I have a machine with 4GB and another one with 8GB, I run a little c# program and both seem to go up to 2GB and then crash withe a memory overflow, any idea how I...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.