Just set the switch (with editbin) and try it and back it out if there are
any problems (and let us know).   Run the binary with no args for help
(better than that copied below!)    
 
Cheers
Ben
 
 
EDITBIN Options

Home <javascript:hhobj_1.Click()>  |
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_overviews.3a_.compiling_and_linking.htm> Overviews

An option consists of an option specifier, which is either a dash ( - ) or a
forward slash ( / ), followed by the name of the option. Option names cannot
be abbreviated. Some options take arguments, specified after a colon ( : ).
No spaces or tabs are allowed within an option specification. Use one or
more spaces or tabs to separate option specifications on the command line.
Option names and their keyword or filename arguments are not case sensitive.

EDITBIN has the following options: 


*       /BIND
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.bind.htm>  

*       /HEAP
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.heap_editbin.htm>  

*
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/vcreflargeaddress_editbin.htm> /LARGEADDRESSAWARE 

*       /NOLOGO
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.nologo_editbin.htm>  

*       /REBASE
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.rebase.htm>  

*       /RELEASE
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.release_editbin.htm>  

*       /SECTION
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.section_editbin.htm>  

*       /STACK
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/_core_.2f.stack_editbin.htm>  

*       /SUBSYSTEM
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/vcrefsubsystem_editbin.htm>  

*       /SWAPRUN
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/vcrefswaprun_editbin.htm>  

*       /VERSION
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/vcrefversion_editbin.htm>  

*       /WS
<mk:@MSITStore:d:\Apps\Dev\MS-VisualStudio6Pro\Msdn98\98VSa\1033\vccore.chm:
:/html/vcrefws_editbin.htm>  

 

 
  _____  

From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org] On Behalf Of Lyle Taylor
Sent: November 19, 2009 8:39 PM
To: arslist@ARSLIST.ORG
Subject: Re: JVM output -- only sees 2GB - but machine has 4GB?


** 

No problem.  I agree with you that it seems senseless to have at this point.
I also think the way memory is partitioned like this by the OS is a bit odd.
I'm not sure Linux or other similar OSes have this "problem".  Perhaps it's
due to old hardware limitations with older x86 processors, and the
architectural issues those created in the OS haven't been completely removed
for some reason.

 

So, going back to the JVM issue, even with the /3gb switch, I'm not sure the
JVM will ever be able to access more than 2GB of virtual memory.  We have 8
or 16 GB of physical memory on our machines, and the JVM (and AR Server) has
always topped out at 2GB per process.

 

Lyle

 

From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org] On Behalf Of Ben Chernys
Sent: Thursday, November 19, 2009 12:22 PM
To: arslist@ARSLIST.ORG
Subject: Re: JVM output -- only sees 2GB - but machine has 4GB?

 

** 

I apologise.  You are correct.  It is a linker switch (which makes sense as
the linker builds the program header) and can be set on any binary with a
small utility - "editbin".

 

It is interesting that Windows should have its link images have that at all
as the compilers need no special code.  There are certainly no throwbacks to
the old 24bit addressing where a load address preserved the top 8 bits of a
word so I would be curious why it was implemented and why it would not be
the default.  

 

As for the utility, it comes with all versions of the MS c compiler since VC
6.  It may be that some newer versions of VC have it as the default for I
can see no use in a 32 bit machine or OS for such a switch.

 

You have me curious now.  Perhaps I'll do some more research into what it
may do other than alerting Windows that an image can request or use a "lot"
of memory.  I remember a bunch of switches in the 16 bit compilers when the
PC first came out and then transitioned to a 32 bit machine.  

 

Cheers

Ben

 

  _____  

From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org] On Behalf Of Lyle Taylor
Sent: November 19, 2009 7:23 PM
To: arslist@ARSLIST.ORG
Subject: Re: JVM output -- only sees 2GB - but machine has 4GB?

** 

Ben, perhaps I misinterpreted the article that Axton posted
(http://msdn.microsoft.com/en-us/library/aa366912%28VS.85%29.aspx).  In that
article, it says the following:

 

After 4GT is enabled, a process that has the
<http://msdn.microsoft.com/en-us/library/ms680349(VS.85).aspx>
IMAGE_FILE_LARGE_ADDRESS_AWARE flag set in its image header will have access
to the additional 1 GB of memory above the low 2 GB.

 

That seems to indicate that something is different about the process, or
that something specific has to be done in order for the process to be able
to access the extra gig of memory (beyond configuring the OS with the /3gb
switch).  I figured that was probably a compile-time option, but I accept
that I could be wrong.  Do you know how that flag gets set for a process in
its image header?

 

Thanks,
Lyle

 

From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org] On Behalf Of Ben Chernys
Sent: Thursday, November 19, 2009 3:23 AM
To: arslist@ARSLIST.ORG
Subject: Re: JVM output -- only sees 2GB - but machine has 4GB?

 

** 

The line by Lyle is incorrect.  A 32 bit program can address 32 bits - not
31!.  There are no special compiler switches needed to allow you to address
higher than 2Gb.  

 

That being said, the OS shares some of your address space.  Windows, will
allocate 2Gb of real memory for its own use and limit the virtual address
space for any single process to 2Gb by default.  This can be changed with
the /3gb switch in c:\boot.ini 

 

John, your interpretation of the article is also incorrect.  Specifically,
you say "It seems as if ALL programs together under windows can only take
2GB.   So - if I have 3 programs each take 1GB -- I would have a problem --
even though I have 4GB."  

 

You would have a performance problem, not necessarily a memory problem,
though I have seen Windows deny mallocs when it was reorganising it's own
memory usage even though there was plenty of "memory" - ie disk space -
available.

 

The KB article states that EACH process can address "typically" 2GB of space
and the article goes on to talk about addressing MORE than 4GB on a 32 but
machine which is more than a 32 bit word can address.

 

The article also talks about the /3GB switch which I describe a bit below.
To enable it, add it to the C:\boot.ini file as in

 

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /fastdetect /3GB

 

With this configuration, Windows own use of virtual addresses is limited to
1Gb and any application can address 3Gb of virtual space.  I use this config
in a lap-top of 4gb where I run a VM Windows 2003 server with ITSM and have
the VM's memory resident  (non-swappable IF Windows agrees) in the host OS.
This gives me excellent VM performance, as well as allowing me to run a host
of other apps such as Visual C, Outlook with a 1gb mail file, Word, etc.

 

This does affect performance in odd ways when you are running many different
memory hungry applications (such as MS Word) but it is relatively standard
for 32 bit servers running only server type applications (such as Oracle /
Remedy etc).

 

Microsoft has a few articles on it.  Look for the /3gb switch.

 

Cheers

Ben Chernys

 

 



NOTICE: This email message is for the sole use of the intended recipient(s)
and may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not the
intended recipient, please contact the sender by reply email and destroy all
copies of the original message.

 

_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 

_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 

_Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
Are"_ 

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:rmisoluti...@verizon.net ARSlist: "Where the Answers Are"

Reply via email to