Coffeehouse Thread

39 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

PC with 4GB of ram: Vista x86 or x64?

Back to Forum: Coffeehouse
  • User profile image
    YearOfThe​LinuxDesktop

    did somebody here had experience with Vista x64 installed on a PC with 4GB of ram?

    how much memory does it waste compared to x86? if it's more than 700-800Mb then installing x64 and having to face with additional problems due to lack of drivers maybe it just isn't worth it.

  • User profile image
    Dodo

    It depends on how many PCI cards you have in your system, aswell as your mainboard. Modern mainboards support to move the hardware address space even further than the end of 4GB.

  • User profile image
    YearOfThe​LinuxDesktop

    Dodo wrote:
    It depends on how many PCI cards you have in your system, aswell as your mainboard. Modern mainboards support to move the hardware address space even further than the end of 4GB.


    I was meaning the additional overhead of windows. the size of memory page varies depending on the amount of ram installed and also 64bit vista uses more ram because 64bit and 32bit applications have different sets of 32 and 64bit libraries so the same library could be loaded twice.

    if between a Vista x86 with 3GB of ram and Vista x64 there's just 100-200 difference in free memory maybe it's better to keep the 32bit version that has less compatibility issues.

  • User profile image
    evildictait​or

    Are you buying a new system? If so then go for the x64 (because they won't sell you components with no x64 drivers).

    Otherwise, check out driver compatability before going ahead and buying it. If all of your components have x64 drivers, get the x64 one.

    The size of windows is about 100megs bigger on disk (about 20-50 megs in memory, depending on what you're doing), but allows faster access of memory*, so the system slowdown is negligible.


    *This isn't just because of loading 64 bit things in one go (most notable for memcpy), but also because Visual studio uses a completely new mechanism for storing frame references for functions in C/C++ for x64, which speeds up programs compiled by VS (which includes a lot of windows and 3rd party x64 programs) by a nontrival amount.

  • User profile image
    DigitalDud

    YearOfTheLinuxDesktop wrote:
    
    Dodo wrote:
    It depends on how many PCI cards you have in your system, aswell as your mainboard. Modern mainboards support to move the hardware address space even further than the end of 4GB.


    I was meaning the additional overhead of windows. the size of memory page varies depending on the amount of ram installed and also 64bit vista uses more ram because 64bit and 32bit applications have different sets of 32 and 64bit libraries so the same library could be loaded twice.


    I'm pretty sure the size of the memory page is always 4 KB unless I'm misunderstanding you?

  • User profile image
    evildictait​or

    DigitalDud wrote:
    
    I'm pretty sure the size of the memory page is always 4 KB unless I'm misunderstanding you?


    You're misunderstanding. The size of the memory page is to do with the memory management.

    What I think YOTLD is saying is that shared dependencies (e.g. user32.dll) are loaded once on Windows x86, even if lots of programs rely on it, but under Windows x64, some programs will use user64 (or equiv) and some will use user32.dll. Although only one of each will be needed in memory, there still the fact that they both need to be there if there's any 32 bit program running.

    Thankfully, YOTLD will be pleased to know that the really big things in memory for WinVista are the resource libraries (all the graphics, icons etc used by everything from the progress bar to the start menu, from the MyComputer icon to the volume control button) are all loaded once by the x64 kernel, and even the constant strings are abstracted out of the DLLs these days (they're in MUIs), so only the code is different, and they tend to be relatively small, i.e. in the few megabytes rather than the hundreds of megabytes.

  • User profile image
    YearOfThe​LinuxDesktop

    DigitalDud wrote:
    
    YearOfTheLinuxDesktop wrote:
    
    Dodo wrote:
    It depends on how many PCI cards you have in your system, aswell as your mainboard. Modern mainboards support to move the hardware address space even further than the end of 4GB.


    I was meaning the additional overhead of windows. the size of memory page varies depending on the amount of ram installed and also 64bit vista uses more ram because 64bit and 32bit applications have different sets of 32 and 64bit libraries so the same library could be loaded twice.


    I'm pretty sure the size of the memory page is always 4 KB unless I'm misunderstanding you?


    I remember I've read it becomes 8KB if the ram is equal or more than 4GB (or something like that).

  • User profile image
    YearOfThe​LinuxDesktop

    evildictaitor wrote:
    Are you buying a new system? If so then go for the x64 (because they won't sell you components with no x64 drivers).

    Otherwise, check out driver compatability before going ahead and buying it. If all of your components have x64 drivers, get the x64 one.

    The size of windows is about 100megs bigger on disk (about 20-50 megs in memory, depending on what you're doing), but allows faster access of memory*, so the system slowdown is negligible.


    vista x64 uses about 2GB more space on disk and just like XP x64 also uses more ram. I don't know if it's an increased cache size or different page size like I read a while ago however I've seen that Vista x64 ram usage seems to vary depending on the amount of ram available on the system. I've seen x64 using 40% of the available ram on 2GB RAM system against 38% Vista x86 uses on system with just 1GB of ram.

    if I had to install Vista x64 on a 4gb system just to find out it the free available ram is almost the same of a Vista x86 on a 3GB system I'd probably chose the latter.

    I actually have 4gb on my system too (the system I'm talking about is one I built for one of my friends) but I couldn't use Vista x64 on it because I lack the printer, webcam drivers and also Nokia PC suite freezes the system and the WHS client isn't supported (not for long).

    evildictaitor wrote:

    *This isn't just because of loading 64 bit things in one go (most notable for memcpy), but also because Visual studio uses a completely new mechanism for storing frame references for functions in C/C++ for x64, which speeds up programs compiled by VS (which includes a lot of windows and 3rd party x64 programs) by a nontrival amount.


    yes but you still have to use x64 native applications. most applications are still x86 and some, like games, most of the times run slightly slower on Vista x64.

  • User profile image
    DigitalDud

    YearOfTheLinuxDesktop wrote:
    
    I remember I've read it becomes 8KB if the ram is equal or more than 4GB (or something like that).


    No, I think you're thinking of IA-64 (Itanium), where Windows set the page size to 8 KB,  x64 doesn't do that.

  • User profile image
    YearOfThe​LinuxDesktop

    DigitalDud wrote:
    
    YearOfTheLinuxDesktop wrote:
    
    I remember I've read it becomes 8KB if the ram is equal or more than 4GB (or something like that).


    No, I think you're thinking of IA-64 (Itanium), where Windows set the page size to 8 KB,  x64 doesn't do that.


    weird, I wonder what it is that increase the ram usage then

  • User profile image
    alwaysmc2

    I switched my desktop computer over to Vista x64 during Christmas.  It got all my hardware after a Windows Update, and ran quite well.

    That said, there was one obscure piece of hardware (a Z-Wave controller) that wouldn't install, and some weirdness with Portal that made me switch back to Vista x86.

    My laptop has 4 gigs of RAM installed, but it has Vista 32 bit and it's staying that way.

  • User profile image
    BHpaddock

    On a 2GB system, the overhead of x64 can actually lead to lesser performance than a 32-bit OS.  But it's not all that substantial of a difference.  Anything less than that, and the increased memory overhead may make a difference.

     

    On a 4GB system, the memory overhead of a 64-bit (WOW64, larger pointers, etc) is easily overshadowed by the increase in useable memory.

    Further, if you play some of the newest most demanding games at very high resolutions (like LOTRO with the ultra-high res textures), you may actually run into the 2GB user VM limitation on a 32-bit OS and it can actually crash the app.  You won't have that problem on a 64-bit OS (assuming the game is large-address-aware, as LOTRO is).

    So the answer I give is... if you have more than 3GB of memory, go x64.  Or if you have more than 2GB of memory and crazy amounts of video memory (like 8800 cards in SLI).

    The only reason not to in those cases is if you have hardware/software that is incompatible.  The hardware problem is easy to avoid on new systems.  And the software problem is minimal these days.

  • User profile image
    BHpaddock

    blehbleh wrote:
    My brother is a gamer ( edit: hardcore gamer )... He has 4GB RAM... I put Vista x64 on his PC... not only that, I even turned the swap file off and deleted "pagefile.sys"... works very well. No problems at all. Vista x64 doesn't seem to "waste" much memory. He can run a LOT of stuff at the same time and load up his games without trouble.

    I think you should for with Vista x64 if you have 4GB, but if you got less than 4GB, go 32bit.


    For god's sake don't mess up your poor brother's computer like that.  Don't disable the pagefile.  It's not like anyone builds a 4GB machine where a little hard drive space is top priority.  And the benefits of having it enabled (you know, not crashing the system and such) far outweight that little bit of disk space it might need.

  • User profile image
    corona_coder

    YearOfTheLinuxDesktop wrote:
    did somebody here had experience with Vista x64 installed on a PC with 4GB of ram?

    how much memory does it waste compared to x86? if it's more than 700-800Mb then installing x64 and having to face with additional problems due to lack of drivers maybe it just isn't worth it.


    In a few words:  Dont use Vi$ta.

    Ubuntu is superior and will give optimal performance on your x64 PC.

  • User profile image
    evildictait​or

    YearOfTheLinuxDesktop wrote:
    
    DigitalDud wrote:
    
    YearOfTheLinuxDesktop wrote:
    
    I remember I've read it becomes 8KB if the ram is equal or more than 4GB (or something like that).


    No, I think you're thinking of IA-64 (Itanium), where Windows set the page size to 8 KB,  x64 doesn't do that.


    weird, I wonder what it is that increase the ram usage then


    Doubling the size of every pointer as well as the additional padding between members of structures (to increase access speed) will increase ram usage, even before other considerations like having multiple copies of libraries in memory.

  • User profile image
    evildictait​or

    corona_coder wrote:
    
    YearOfTheLinuxDesktop wrote:
    did somebody here had experience with Vista x64 installed on a PC with 4GB of ram?

    how much memory does it waste compared to x86? if it's more than 700-800Mb then installing x64 and having to face with additional problems due to lack of drivers maybe it just isn't worth it.


    In a few words:  Dont use Vi$ta.

    Ubuntu is superior and will give optimal performance on your x64 PC.


    Yeah. I love Ubuntu. It gives my machine optimal performance right up til that kernel panic:

    http://farm3.static.flickr.com/2026/2185452037_defdc2e59e.jpg

  • User profile image
    Sven Groot

    There are three reasons why x64 Windows uses more memory than x86:

    1. In native 64 bit applications (and most of Windows itself), pointers are 64 bits, so they take twice as much memory as a 32 bit pointer.
    2. Stack alignment is 16 bytes, as opposed to 4 bytes on 32 bit (again, only applies to native 64 bit code).
    3. A lot of the OS is loaded twice: to be able to run 32 bit applications, many of the core OS libraries (e.g. kernel32.dll, user32.dll) exist in both 32 and 64 bit versions. These versions are both kept in memory (when both are needed) so this wastes memory.

    As to the exact amount of memory it wastes, I can't say. I've been running XP x64 and Vista x64, and I never thought its memory usage was too high. Especially in Vista it's hard to measure since it'll use what you have.

    In any case, XP 32 bit on this machine sees only 3.25GB RAM, while Vista 64 sees the full 4GB, which is nice. Smiley

  • User profile image
    Curt Nichols

    Sven Groot wrote:
    There are three reasons why x64 Windows uses more memory than x86:

    1. In native 64 bit applications (and most of Windows itself), pointers are 64 bits, so they take twice as much memory as a 32 bit pointer.
    2. Stack alignment is 16 bytes, as opposed to 4 bytes on 32 bit (again, only applies to native 64 bit code).
    3. A lot of the OS is loaded twice: to be able to run 32 bit applications, many of the core OS libraries (e.g. kernel32.dll, user32.dll) exist in both 32 and 64 bit versions. These versions are both kept in memory (when both are needed) so this wastes memory.

    As to the exact amount of memory it wastes, I can't say. I've been running XP x64 and Vista x64, and I never thought its memory usage was too high. Especially in Vista it's hard to measure since it'll use what you have.

    In any case, XP 32 bit on this machine sees only 3.25GB RAM, while Vista 64 sees the full 4GB, which is nice.


    A fourth reason:

    The x64 code generated by the compiler tends to be larger, too (this varies between "a little" and "a lot" larger). That code has to be loaded into memory in order to execute, so that takes more memory, too.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.