By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,883 Members | 1,265 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,883 IT Pros & Developers. It's quick & easy.

2GB memory limit

P: n/a
Dear Sirs,

I have developed a VB .Net windows application, but unfortunately when I
this application tries to use more than 2GB memory it fails although there
is available 4GB of memory on the machine. How may I allocate more virtual
memory to be used by the application or extend this limit?

Regards,
Yahya
Nov 21 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
"Yahya" <x@x.x> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
Dear Sirs,

I have developed a VB .Net windows application, but unfortunately when
I
this application tries to use more than 2GB memory it fails although there
is available 4GB of memory on the machine. How may I allocate more virtual
memory to be used by the application or extend this limit?


The amount of RAM on the machine is irrelevant. Your application uses
virtual memory which is paged from disk to RAM by the OS.

On 32-bit windows you have a 4gig virtual address space which divided into
2gigs for user-mode code, and 2gigs for kernel-mode code. So your
application (which runs in user-mode) can only access the bottom 2gigs of
the address space.

On 64bit windows, native 64-bit apps (which you can't write with .NET 1.1)
have a very large address space. 32-bit apps running on 64bit windows in the
Windows On Windows64 environment still have a 4gig address space, but since
all no kernel-mode code can run in 32-bit mode, you can use the whole 4gig
address space.

But seriously, why are you using so much memory?

David
Nov 21 '05 #2

P: n/a
Yahya,
In addition to David's comments.

..NET 2.0 (VS.NET 2005, aka Whidbey, due out later in 2005) supports both a
32-bit CLR & a 64-bit CLR.

http://lab.msdn.microsoft.com/vs2005/

I don't know what the memory limit on the 64-bit CLR is going to be, however
I would expect it to be significantly more then either 2GB or 4GB.

Of course the 2.0 64-bit CLR will require a 64-bit version of the OS (XP Pro
or 2003) as well as a 64-bit CPU.

Hope this helps
Jay
"Yahya" <x@x.x> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
| Dear Sirs,
|
| I have developed a VB .Net windows application, but unfortunately when
I
| this application tries to use more than 2GB memory it fails although there
| is available 4GB of memory on the machine. How may I allocate more virtual
| memory to be used by the application or extend this limit?
|
| Regards,
| Yahya
|
|
Nov 21 '05 #3

P: n/a
I am using such a large amount or memory since this application is copying
large mail items between public folders on a machine which is also running
exchange 2003 that is taking alone the minimum of 1GB.

But I still didn't understand how can I make use of the whole 4GB of memory.

Thank you,
Yahya

"David Browne" <davidbaxterbrowne no potted me**@hotmail.com> wrote in
message news:eL**************@TK2MSFTNGP12.phx.gbl...
"Yahya" <x@x.x> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
Dear Sirs,

I have developed a VB .Net windows application, but unfortunately when I
this application tries to use more than 2GB memory it fails although there is available 4GB of memory on the machine. How may I allocate more virtual memory to be used by the application or extend this limit?

The amount of RAM on the machine is irrelevant. Your application uses
virtual memory which is paged from disk to RAM by the OS.

On 32-bit windows you have a 4gig virtual address space which divided into
2gigs for user-mode code, and 2gigs for kernel-mode code. So your
application (which runs in user-mode) can only access the bottom 2gigs of
the address space.

On 64bit windows, native 64-bit apps (which you can't write with .NET 1.1)
have a very large address space. 32-bit apps running on 64bit windows in

the Windows On Windows64 environment still have a 4gig address space, but since all no kernel-mode code can run in 32-bit mode, you can use the whole 4gig
address space.

But seriously, why are you using so much memory?

David

Nov 21 '05 #4

P: n/a
"Yahya" <x@x.x> wrote in message
news:eH**************@TK2MSFTNGP15.phx.gbl...
I am using such a large amount or memory since this application is copying
large mail items between public folders on a machine which is also running
exchange 2003 that is taking alone the minimum of 1GB.
How exactly is this copying being done? Can you not chunk the copy?
But I still didn't understand how can I make use of the whole 4GB of
memory.


You can't. To paraphrase David this would only be available on a 64-bit
machine running a 64-bit version of Windows and .NET 2.0, which has not yet
been released. The limit for standard Win32 applications is 2GB.

--
Sean Hederman

http://www.codingsanity.com
Nov 21 '05 #5

P: n/a
Yahya,
| But I still didn't understand how can I make use of the whole 4GB of
memory.

As David, Sean, and I have stated you cannot per se until .NET 2.0 64-Bit
edition.

Depending on which server you are running, you can enable .NET 1.1 to use
3GB if your server OS supports it. For details start with "/3GB switch" at:

http://msdn.microsoft.com/library/de...netchapt17.asp

| I am using such a large amount or memory since this application is copying
| large mail items between public folders on a machine which is also running
| exchange 2003 that is taking alone the minimum of 1GB.
I would review the algorithm I was using to copy the data to see if there
was one that did not require such high memory requirements. Such as reading
& writing 1M chunks at a time.

Hope this helps
Jay
"Yahya" <x@x.x> wrote in message
news:eH**************@TK2MSFTNGP15.phx.gbl...
|I am using such a large amount or memory since this application is copying
| large mail items between public folders on a machine which is also running
| exchange 2003 that is taking alone the minimum of 1GB.
|
| But I still didn't understand how can I make use of the whole 4GB of
memory.
|
| Thank you,
| Yahya
|
| "David Browne" <davidbaxterbrowne no potted me**@hotmail.com> wrote in
| message news:eL**************@TK2MSFTNGP12.phx.gbl...
| > "Yahya" <x@x.x> wrote in message
| > news:ec**************@TK2MSFTNGP14.phx.gbl...
| > > Dear Sirs,
| > >
| > > I have developed a VB .Net windows application, but unfortunately
| when
| > > I
| > > this application tries to use more than 2GB memory it fails although
| there
| > > is available 4GB of memory on the machine. How may I allocate more
| virtual
| > > memory to be used by the application or extend this limit?
| > >
| >
| > The amount of RAM on the machine is irrelevant. Your application uses
| > virtual memory which is paged from disk to RAM by the OS.
| >
| > On 32-bit windows you have a 4gig virtual address space which divided
into
| > 2gigs for user-mode code, and 2gigs for kernel-mode code. So your
| > application (which runs in user-mode) can only access the bottom 2gigs
of
| > the address space.
| >
| > On 64bit windows, native 64-bit apps (which you can't write with .NET
1.1)
| > have a very large address space. 32-bit apps running on 64bit windows in
| the
| > Windows On Windows64 environment still have a 4gig address space, but
| since
| > all no kernel-mode code can run in 32-bit mode, you can use the whole
4gig
| > address space.
| >
| > But seriously, why are you using so much memory?
| >
| > David
| >
| >
|
|
Nov 21 '05 #6

P: n/a
Tch. Nobody with any memories of 64K limits?
"Yahya" <x@x.x> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
Dear Sirs,

I have developed a VB .Net windows application, but unfortunately when I this application tries to use more than 2GB memory it fails although there
is available 4GB of memory on the machine. How may I allocate more virtual
memory to be used by the application or extend this limit?

Regards,
Yahya

Nov 21 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.