available ram for 32bit single app in 64 bit OS with huge amount of ram

Discussion in 'Windows 64bit' started by ZF, Jan 8, 2009.

  1. ZF

    ZF Guest

    <sorry for my bad english>

    Hallo!
    I would like to know who does "manage" the memory amount in this scenario:

    Vista64 (business, pro ... ) with 20 GB of ram.

    four 32-bit applications that run simultaneously

    Will all these applications use all the memory amount that they can manage
    (about 3,5 gb if I know correctly) or will they see only the first 3,5 gb of
    ram even if we have much more?

    I imagine this:

    00:00:10 - free ram 19,5 on 20 GB
    00:00:15 - start 32bit app #1
    00:00:16 - will app#1 see 3,5 gb or 3,0? let's suppose: 3,5 ; I now use all
    the ram app#1 can use.
    00:00:30 - free ram is now 16,0 on 20 GB
    00:00:31 - start 32bit app #2
    00:00:32 - will app#2 see 3,5 gb or 0?
    ....
    and so on.

    I hope it was clear enough.
    Can you help me?

    </sorry for my bad english>
     
    ZF, Jan 8, 2009
    #1
    1. Advertising

  2. Each 32 bit application gets 4 GB of _virtual memory address space_. That's
    not quite the same thing as RAM, though it's often confused with RAM. IAC,
    for your purposes, each application is treated separately.

    --
    Charlie.
    http://msmvps.com/blogs/xperts64
    http://mvp.support.microsoft.com/profile/charlie.russel

    "ZF" <> wrote in message
    news:...
    > <sorry for my bad english>
    >
    > Hallo!
    > I would like to know who does "manage" the memory amount in this scenario:
    >
    > Vista64 (business, pro ... ) with 20 GB of ram.
    >
    > four 32-bit applications that run simultaneously
    >
    > Will all these applications use all the memory amount that they can manage
    > (about 3,5 gb if I know correctly) or will they see only the first 3,5 gb
    > of ram even if we have much more?
    >
    > I imagine this:
    >
    > 00:00:10 - free ram 19,5 on 20 GB
    > 00:00:15 - start 32bit app #1
    > 00:00:16 - will app#1 see 3,5 gb or 3,0? let's suppose: 3,5 ; I now use
    > all the ram app#1 can use.
    > 00:00:30 - free ram is now 16,0 on 20 GB
    > 00:00:31 - start 32bit app #2
    > 00:00:32 - will app#2 see 3,5 gb or 0?
    > ...
    > and so on.
    >
    > I hope it was clear enough.
    > Can you help me?
    >
    > </sorry for my bad english>
     
    Charlie Russel - MVP, Jan 8, 2009
    #2
    1. Advertising

  3. ZF

    DevilsPGD Guest

    In message <> "ZF"
    <> was claimed to have wrote:

    ><sorry for my bad english>
    >
    >Hallo!
    >I would like to know who does "manage" the memory amount in this scenario:
    >
    >Vista64 (business, pro ... ) with 20 GB of ram.
    >
    >four 32-bit applications that run simultaneously
    >
    >Will all these applications use all the memory amount that they can manage
    >(about 3,5 gb if I know correctly) or will they see only the first 3,5 gb of
    >ram even if we have much more?
    >
    >I imagine this:
    >
    >00:00:10 - free ram 19,5 on 20 GB
    >00:00:15 - start 32bit app #1
    >00:00:16 - will app#1 see 3,5 gb or 3,0? let's suppose: 3,5 ; I now use all
    >the ram app#1 can use.
    >00:00:30 - free ram is now 16,0 on 20 GB
    >00:00:31 - start 32bit app #2
    >00:00:32 - will app#2 see 3,5 gb or 0?
    >...
    >and so on.
    >
    >I hope it was clear enough.
    >Can you help me?
    >
    ></sorry for my bad english>


    Each application gets 2GB of private virtual address space, or if
    compiled with the /LARGEADDRESSAWARE switch then 4GB of private virtual
    address space.

    Each and every 32-bit application gets this same 2GB of address space
    regardless of whether you have 1GB or 20GB of memory on the physical
    system.

    With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    full 4GB and you wouldn't necessarily be paging if you have 20GB of
    total system RAM.
     
    DevilsPGD, Jan 8, 2009
    #3
  4. Actually, they get the full 4 GB of virtual memory address space, they just
    don't know what to do with it, so ignore it. But the OS assigns them the
    space, so far as I know.

    --
    Charlie.
    http://msmvps.com/blogs/xperts64
    http://mvp.support.microsoft.com/profile/charlie.russel

    "DevilsPGD" <> wrote in message
    news:...
    > In message <> "ZF"
    > <> was claimed to have wrote:
    >
    >><sorry for my bad english>
    >>
    >>Hallo!
    >>I would like to know who does "manage" the memory amount in this scenario:
    >>
    >>Vista64 (business, pro ... ) with 20 GB of ram.
    >>
    >>four 32-bit applications that run simultaneously
    >>
    >>Will all these applications use all the memory amount that they can manage
    >>(about 3,5 gb if I know correctly) or will they see only the first 3,5 gb
    >>of
    >>ram even if we have much more?
    >>
    >>I imagine this:
    >>
    >>00:00:10 - free ram 19,5 on 20 GB
    >>00:00:15 - start 32bit app #1
    >>00:00:16 - will app#1 see 3,5 gb or 3,0? let's suppose: 3,5 ; I now use
    >>all
    >>the ram app#1 can use.
    >>00:00:30 - free ram is now 16,0 on 20 GB
    >>00:00:31 - start 32bit app #2
    >>00:00:32 - will app#2 see 3,5 gb or 0?
    >>...
    >>and so on.
    >>
    >>I hope it was clear enough.
    >>Can you help me?
    >>
    >></sorry for my bad english>

    >
    > Each application gets 2GB of private virtual address space, or if
    > compiled with the /LARGEADDRESSAWARE switch then 4GB of private virtual
    > address space.
    >
    > Each and every 32-bit application gets this same 2GB of address space
    > regardless of whether you have 1GB or 20GB of memory on the physical
    > system.
    >
    > With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    > full 4GB and you wouldn't necessarily be paging if you have 20GB of
    > total system RAM.
     
    Charlie Russel - MVP, Jan 8, 2009
    #4
  5. I would like to know if several 32-bit applications running at the same time
    on a 64-bit version of Windows will be able to utilize the actual RAM
    better.
    In other words, is Windows Vista 64bit able to spread out each 32-bit
    process virtual memory to RAM if the 64-bit system has for example 16GB of
    RAM?

    /Magnus
     
    Magnus Flysjö, Jan 8, 2009
    #5
  6. ZF

    Bo Persson Guest

    Magnus Flysjö wrote:
    > I would like to know if several 32-bit applications running at the
    > same time on a 64-bit version of Windows will be able to utilize
    > the actual RAM better.
    > In other words, is Windows Vista 64bit able to spread out each
    > 32-bit process virtual memory to RAM if the 64-bit system has for
    > example 16GB of RAM?
    >


    Yes, the virtual addresses are mapped to any part of the physical
    memory. The limitation on 32 bit programs is the SIZE of the memory it
    can access.


    Bo Persson
     
    Bo Persson, Jan 8, 2009
    #6
  7. ZF

    ZF Guest

    Magnus Flysjö wrote:
    > I would like to know if several 32-bit applications running at the
    > same time on a 64-bit version of Windows will be able to utilize the
    > actual RAM better.
    > In other words, is Windows Vista 64bit able to spread out each 32-bit
    > process virtual memory to RAM if the 64-bit system has for example
    > 16GB of RAM?
    >
    > /Magnus


    i see that DevilsPGD said "With four 32-bit applications (with
    /LARGEADDRESSAWARE) each can use a
    full 4GB and you wouldn't necessarily be paging if you have 20GB of
    total system RAM."

    :)
     
    ZF, Jan 8, 2009
    #7
  8. ZF

    ZF Guest

    Charlie Russel - MVP wrote:
    > Each 32 bit application gets 4 GB of _virtual memory address space_.
    > That's not quite the same thing as RAM, though it's often confused
    > with RAM. IAC, for your purposes, each application is treated
    > separately.


    Many many thanks, Charlie! :)
     
    ZF, Jan 8, 2009
    #8
  9. ZF

    ZF Guest

    DevilsPGD wrote:
    [...]

    > Each application gets 2GB of private virtual address space, or if
    > compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    > virtual address space.


    if i, as a user and not a programmer, have a standard 32 application like
    (for example) Photoshop (CS3), Some MS Office apps (ver 2003) ... i can't
    compile, am I right? So it's impossible to me to use that switch, isn't it?

    > Each and every 32-bit application gets this same 2GB of address space
    > regardless of whether you have 1GB or 20GB of memory on the physical
    > system.
    >
    > With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    > full 4GB and you wouldn't necessarily be paging if you have 20GB of
    > total system RAM.


    that's great.
    can you clarify to me if that /LARGEADDRESSAWARE is something I can use or
    is only a programmer's matter?

    thanks DevilsPGD!
     
    ZF, Jan 8, 2009
    #9
  10. ZF

    ZF Guest

    Bo Persson wrote:
    > Magnus Flysjö wrote:
    >> I would like to know if several 32-bit applications running at the
    >> same time on a 64-bit version of Windows will be able to utilize
    >> the actual RAM better.
    >> In other words, is Windows Vista 64bit able to spread out each
    >> 32-bit process virtual memory to RAM if the 64-bit system has for
    >> example 16GB of RAM?
    >>

    >
    > Yes, the virtual addresses are mapped to any part of the physical
    > memory. The limitation on 32 bit programs is the SIZE of the memory it
    > can access.


    Supposing I have 4 gb of ram, what happens if i open 4 apps and try to make
    them eat all the memory they can use?
    We said each 32bit app sees 2 or 4 gb (let's say 2 for now)
    every app sees 2 gb of free "memory address space", so we have 2+2+2+2 = 8
    .... I think the OS can resize the response of what's the total and the free
    available "memory address space" , right?

    so if isn't used they see 2 gb, but when they reach *really* the maximum
    memory usage ... what happens? :)
     
    ZF, Jan 8, 2009
    #10
  11. Only programmers. A 32-bit application either does, or does not, support
    >2GB of RAM. The decision is made by the programmer, and what structures he

    creates within the program, and what compile time switches he uses. The vast
    majority of programs do NOT support >2GB.

    --
    Charlie.
    http://msmvps.com/blogs/xperts64
    http://mvp.support.microsoft.com/profile/charlie.russel

    "ZF" <> wrote in message
    news:%...
    >
    >
    > DevilsPGD wrote:
    > [...]
    >
    >> Each application gets 2GB of private virtual address space, or if
    >> compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    >> virtual address space.

    >
    > if i, as a user and not a programmer, have a standard 32 application like
    > (for example) Photoshop (CS3), Some MS Office apps (ver 2003) ... i can't
    > compile, am I right? So it's impossible to me to use that switch, isn't
    > it?
    >
    >> Each and every 32-bit application gets this same 2GB of address space
    >> regardless of whether you have 1GB or 20GB of memory on the physical
    >> system.
    >>
    >> With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    >> full 4GB and you wouldn't necessarily be paging if you have 20GB of
    >> total system RAM.

    >
    > that's great.
    > can you clarify to me if that /LARGEADDRESSAWARE is something I can use or
    > is only a programmer's matter?
    >
    > thanks DevilsPGD!
     
    Charlie Russel - MVP, Jan 8, 2009
    #11
  12. ZF

    Dave Warren Guest

    In message <> "ZF"
    <> was claimed to have wrote:

    >
    >
    >Magnus Flysjö wrote:
    >> I would like to know if several 32-bit applications running at the
    >> same time on a 64-bit version of Windows will be able to utilize the
    >> actual RAM better.
    >> In other words, is Windows Vista 64bit able to spread out each 32-bit
    >> process virtual memory to RAM if the 64-bit system has for example
    >> 16GB of RAM?
    >>
    >> /Magnus

    >
    >i see that DevilsPGD said "With four 32-bit applications (with
    >/LARGEADDRESSAWARE) each can use a
    >full 4GB and you wouldn't necessarily be paging if you have 20GB of
    >total system RAM."


    Without the /largeaddressaware 32-bit applications have access to 2GB of
    address space rather then 4GB, but it's still entirely private virtual
    address space, so your 16GB of RAM will still comfortably run 7 32-bit
    apps all using 2GB each (with a bit of breathing room) without requiring
    paging.

    In other words, the answer to your initial question is: Yes. On a x64
    system multiple 32-bit applications can benefit from all physical RAM
    installed in the system. The only limitation is that each individual
    application is limited to 2GB/4GB.

    This isn't a problem for most applications, Office apps (as an example)
    don't generally consume anything near 2GB anyway, and will benefit more
    from the RAM being available for disk caching.
    --
    Dave Warren,
    Office: (403) 775-1700 / (888) 300-3480
     
    Dave Warren, Jan 9, 2009
    #12
  13. ZF

    Guest

    Re: available ram for 32bit single app in 64 bit OS with huge amountof ram

    On Jan 7, 7:04 pm, "ZF" <> wrote:
    > <sorry for my bad english>
    >
    > Hallo!
    > I would like to know who does "manage" the memory amount in this scenario:
    >
    > Vista64 (business, pro ... ) with 20 GB of ram.
    >
    > four 32-bit applications that run simultaneously
    >
    > Will all these applications use all the memory amount that they can manage
    > (about 3,5 gb if I know correctly) or will they see only the first 3,5 gb of
    > ram even if we have much more?
    >
    > I imagine this:
    >
    > 00:00:10 - free ram 19,5 on 20 GB
    > 00:00:15 - start 32bit app #1
    > 00:00:16 - will app#1 see 3,5 gb or 3,0? let's suppose: 3,5 ; I now use all
    > the ram app#1 can use.
    > 00:00:30 - free ram is now 16,0 on 20 GB
    > 00:00:31 - start 32bit app #2
    > 00:00:32 - will app#2  see 3,5 gb or 0?
    > ...
    > and so on.
    >
    > I hope it was clear enough.
    > Can you help me?
    >
    > </sorry for my bad english>


    http://www.gamasutra.com/view/feature/3602/sponsored_feature_ram_vram_and_.php
    might prove useful
     
    , Jan 9, 2009
    #13
  14. ZF

    Bo Persson Guest

    ZF wrote:
    > Bo Persson wrote:
    >> Magnus Flysjö wrote:
    >>> I would like to know if several 32-bit applications running at the
    >>> same time on a 64-bit version of Windows will be able to utilize
    >>> the actual RAM better.
    >>> In other words, is Windows Vista 64bit able to spread out each
    >>> 32-bit process virtual memory to RAM if the 64-bit system has for
    >>> example 16GB of RAM?
    >>>

    >>
    >> Yes, the virtual addresses are mapped to any part of the physical
    >> memory. The limitation on 32 bit programs is the SIZE of the
    >> memory it can access.

    >
    > Supposing I have 4 gb of ram, what happens if i open 4 apps and try
    > to make them eat all the memory they can use?
    > We said each 32bit app sees 2 or 4 gb (let's say 2 for now)
    > every app sees 2 gb of free "memory address space", so we have
    > 2+2+2+2 = 8 ... I think the OS can resize the response of what's
    > the total and the free available "memory address space" , right?
    >
    > so if isn't used they see 2 gb, but when they reach *really* the
    > maximum memory usage ... what happens? :)


    Nothing much happens. :)

    The address spaces are all *virtual*, with either 2 or 4 GB to each
    program. Each program will have its memory mapped to RAM or to disk
    (the swap file), individually an dynamically allocated by the OS.

    If you have 4 GB of RAM and 200 GB of free disk space, a 64 bit
    program can use 204 GB. No problem!

    The 32 bit programs are limited by the fact that 32 bits can only
    count to 4G, then they run out of bits!


    Bo Persson
     
    Bo Persson, Jan 9, 2009
    #14
  15. ZF

    Doug Forster Guest

    Hi ZF,

    Hmm Charlie's not quite right there. You can set the flag afterwards with a
    MS utility called EditBin. It might not work of course for the other reasons
    Charlie said but many compiler tools will actually make code that handles
    the flag OK without any special programmer intervention. The other problem
    is finding the utility. It generally only comes with the MS Visual Studio
    tools but I believe it is in the free VC++ express package. If you can find
    it play with it at your own risk and backup the exe's before trying it.

    Cheers
    Doug Forster

    "ZF" <> wrote in message
    news:%...
    >
    >
    > DevilsPGD wrote:
    > [...]
    >
    >> Each application gets 2GB of private virtual address space, or if
    >> compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    >> virtual address space.

    >
    > if i, as a user and not a programmer, have a standard 32 application like
    > (for example) Photoshop (CS3), Some MS Office apps (ver 2003) ... i can't
    > compile, am I right? So it's impossible to me to use that switch, isn't
    > it?
    >
    >> Each and every 32-bit application gets this same 2GB of address space
    >> regardless of whether you have 1GB or 20GB of memory on the physical
    >> system.
    >>
    >> With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    >> full 4GB and you wouldn't necessarily be paging if you have 20GB of
    >> total system RAM.

    >
    > that's great.
    > can you clarify to me if that /LARGEADDRESSAWARE is something I can use or
    > is only a programmer's matter?
    >
    > thanks DevilsPGD!
     
    Doug Forster, Jan 12, 2009
    #15
  16. Hello!

    > Each application gets 2GB of private virtual address space, or if
    > compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    > virtual address space.


    It's not 4 GB, but 3 GB if compiled with /LARGEADDRESSAWARE. The kernel
    still needs a memory range, but it just uses 1 GB of the 2^32 Bytes (4 GB).


    GP
     
    Günter Prossliner, Jan 12, 2009
    #16
  17. ZF

    Dave Warren Guest

    In message <> "Günter Prossliner"
    <g.prossliner/gmx/at> was claimed to have wrote:

    >Hello!
    >
    >> Each application gets 2GB of private virtual address space, or if
    >> compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    >> virtual address space.

    >
    >It's not 4 GB, but 3 GB if compiled with /LARGEADDRESSAWARE. The kernel
    >still needs a memory range, but it just uses 1 GB of the 2^32 Bytes (4 GB).


    4GB in x64 though, which is both the newsgroup we're in, and was
    mentioned explicitly by the previous poster.
     
    Dave Warren, Jan 12, 2009
    #17
  18. In x64, it is 4GB, not 3GB. Which is what we're talking about here, Gunter.

    --
    Charlie.
    http://msmvps.com/blogs/xperts64
    http://mvp.support.microsoft.com/profile/charlie.russel

    "Günter Prossliner" <g.prossliner/gmx/at> wrote in message
    news:...
    > Hello!
    >
    >> Each application gets 2GB of private virtual address space, or if
    >> compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    >> virtual address space.

    >
    > It's not 4 GB, but 3 GB if compiled with /LARGEADDRESSAWARE. The kernel
    > still needs a memory range, but it just uses 1 GB of the 2^32 Bytes (4
    > GB).
    >
    >
    > GP
    >
     
    Charlie Russel - MVP, Jan 12, 2009
    #18
  19. ZF

    jabloomf1230 Guest

    Re: available ram for 32bit single app in 64 bit OS with huge amountof ram

    NTCore's CFF Explorer (freeware) also can be used to set the flag:

    http://www.ntcore.com/exsuite.php

    Doug Forster wrote:
    > Hi ZF,
    >
    > Hmm Charlie's not quite right there. You can set the flag afterwards
    > with a MS utility called EditBin. It might not work of course for the
    > other reasons Charlie said but many compiler tools will actually make
    > code that handles the flag OK without any special programmer
    > intervention. The other problem is finding the utility. It generally
    > only comes with the MS Visual Studio tools but I believe it is in the
    > free VC++ express package. If you can find it play with it at your own
    > risk and backup the exe's before trying it.
    >
    > Cheers
    > Doug Forster
    >
    > "ZF" <> wrote in message
    > news:%...
    >>
    >>
    >> DevilsPGD wrote:
    >> [...]
    >>
    >>> Each application gets 2GB of private virtual address space, or if
    >>> compiled with the /LARGEADDRESSAWARE switch then 4GB of private
    >>> virtual address space.

    >>
    >> if i, as a user and not a programmer, have a standard 32 application
    >> like (for example) Photoshop (CS3), Some MS Office apps (ver 2003) ...
    >> i can't compile, am I right? So it's impossible to me to use that
    >> switch, isn't it?
    >>
    >>> Each and every 32-bit application gets this same 2GB of address space
    >>> regardless of whether you have 1GB or 20GB of memory on the physical
    >>> system.
    >>>
    >>> With four 32-bit applications (with /LARGEADDRESSAWARE) each can use a
    >>> full 4GB and you wouldn't necessarily be paging if you have 20GB of
    >>> total system RAM.

    >>
    >> that's great.
    >> can you clarify to me if that /LARGEADDRESSAWARE is something I can
    >> use or is only a programmer's matter?
    >>
    >> thanks DevilsPGD!

    >
     
    jabloomf1230, Jan 12, 2009
    #19
  20. > Hi ZF,
    >
    > Hmm Charlie's not quite right there. You can set the flag afterwards with
    > a MS utility called EditBin. It might not work of course for the other
    > reasons Charlie said but many compiler tools will actually make code that
    > handles the flag OK without any special programmer intervention. The other
    > problem is finding the utility. It generally only comes with the MS Visual
    > Studio tools but I believe it is in the free VC++ express package. If you
    > can find it play with it at your own risk and backup the exe's before
    > trying it.
    >
    > Cheers
    > Doug Forster


    I wouldn't change the flag after the fact (after something has been compiled
    and is shipping). You're really creating unsupported scenarios, so if you
    run into something unexpected *caused* by the change, you'll be wasting the
    developer's time. Odds are, it wouldn't occur to him to ask whether you've
    done that sort of thing to begin with, and the dev/QA team has probably NOT
    tested that particular scenario (or else the flag would probably be set
    already), so you're really on your own.
     
    Homer J. Simpson, Jan 14, 2009
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Henk Jol
    Replies:
    1
    Views:
    937
    Moz Champion
    Jan 4, 2005
  2. Me-GT

    Amount of RAM

    Me-GT, Jul 15, 2003, in forum: Computer Support
    Replies:
    11
    Views:
    1,671
    the real TOMMY Tutalidge
    Jul 16, 2003
  3. TJ Robertson

    Re: Amount of RAM

    TJ Robertson, Jul 15, 2003, in forum: Computer Support
    Replies:
    0
    Views:
    532
    TJ Robertson
    Jul 15, 2003
  4. nemo
    Replies:
    33
    Views:
    5,862
    samuel
    Mar 22, 2005
  5. Giuen
    Replies:
    0
    Views:
    1,450
    Giuen
    Sep 12, 2008
Loading...

Share This Page