soumyasch Posted May 25, 2009 Share Posted May 25, 2009 My most used "memory-heavy" application is Visual Studio, which stays open for a very significant amount of time. However, it doesn't come in 64-bit version. Is there any argument in favor of me upgrading to x64? I currently use Vista SP1 x86 with 3 GB RAM. If I did without upgrading my RAM, will end up only decreasing the amount of "free" RAM available for VS. If I did upgrade my RAM, it wouldn't benefit me much because VS wouldn't be able to use it anyway. Being able to run more applications without thrashing doesn't also make the cut anyway because nothing except the browser and occassionally WMP or Word is open anyway. I don't see any reason to upgrade yet, while VS is 32 bit only. Am I overlooking anything with this line of thought? Link to comment Share on other sites More sharing options...
WesParmalee Posted May 25, 2009 Share Posted May 25, 2009 Unless you use x64 applications and have +4GB of RAM, really senseless to use x64. Link to comment Share on other sites More sharing options...
Eric Veteran Posted May 25, 2009 Veteran Share Posted May 25, 2009 If you're planning on adding more RAM, install x64. x86 apps run just fine. (There are already 10^n topics about this. ;)) Link to comment Share on other sites More sharing options...
fhpuqrgrpgvirzhpujbj Posted May 25, 2009 Share Posted May 25, 2009 64bit still speeds it up, even if there isn't a x64 version, although the amount it speeds it up depends on how the app is written. I believe VS2010 may have a x64 version but I'm not sure. Link to comment Share on other sites More sharing options...
soumyasch Posted May 25, 2009 Author Share Posted May 25, 2009 If you're planning on adding more RAM, install x64. x86 apps run just fine.(There are already 10^n topics about this. ;)) I know that. But that wasn't what I was asking. I should have made myself clear. I asked if the app I use most doesn't come in native x64 version, would it be worth going x64 and/or getting more RAM? 64bit still speeds it up, even if there isn't a x64 version, although the amount it speeds it up depends on how the app is written. I believe VS2010 may have a x64 version but I'm not sure. No, VS 2010 is also 32-bit only. It can create and debug x64 applications just fine (same as VS 2005 and 2008), just that the app itself is 32 bit only. Also, x64 apps would need more memory than for an exactly equivalent x86 app, won't it? Because of the larger pointer and integer sizes? Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 Yes, 64-bit apps require more disk space (often 10-50%) and more RAM. 32-bit software running in the emulator on 64-bit Windows also use more resources than they would running natively, however it's pretty negligible on a modern system. The advantage is that you have the freedom to run 64-bit apps if you have any. Link to comment Share on other sites More sharing options...
TEX4S Posted May 25, 2009 Share Posted May 25, 2009 what year is this ? Link to comment Share on other sites More sharing options...
dcghost Posted May 25, 2009 Share Posted May 25, 2009 It all depends on your needs. You said you had 3gb of ram so x64 won't help at all with that. If you had 4+ then yes..you would have to have x64. Applications...you need to find out if they take advantage of x64 or if they are only written for x86. If they are only written for x86 you will not see any benefits. Link to comment Share on other sites More sharing options...
The_Decryptor Veteran Posted May 25, 2009 Veteran Share Posted May 25, 2009 By default, 32bit apps have a 2GB memory limit on 32bit Windows (they can work around it though, but it requires extra effort). On 64Bit Windows, that per 32Bit app limit is doubled to 4GB. So just by running on a 64Bit host OS, 32Bit apps can use twice as much memory "for free". Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 By default, 32bit apps have a 2GB memory limit on 32bit Windows (they can work around it though, but it requires extra effort). On 64Bit Windows, that per 32Bit app limit is doubled to 4GB.So just by running on a 64Bit host OS, 32Bit apps can use twice as much memory "for free". Only if the author marked the program as being large address aware and programmed it to actually attempt to use that much memory. Most do not, and are designed with the 2GB address space in mind. Link to comment Share on other sites More sharing options...
null_ Posted May 25, 2009 Share Posted May 25, 2009 (edited) If you have 2 GB or more memory, then go with 64-bit as long as your processor supports it and you have drivers for your computer. The performance difference with 32-bit programs running in WOW64 is at best -/+ 1-2%, depending on the application which isn't really noticible. In terms of memory usage, you may see it 2 or 3% higher than when 32-bit Windows but you also have to account for the WOW64 subsystem. Again, the difference is not noticible in day to day operations. I've run 64-bit Windows Vista on many different machines with different configurations. It is a common myth that the only real benefit of using 64-bit Windows is that you can access 4 GB or higher in physical RAM and that you should have 4 GB or higher to run 64-bit Windows. This is false; there are benefits to running 64-bit Windows even when you have less than 4 GB of RAM (and 64-bit works quite happily even with 2 GB of RAM). If you want to understand the differences in memory addressing between 32-bit and 64-bit Windows, I recommend checking out a few blog posts made by Mark Russinovich, a technical fellow at Microsoft: Pushing the limits of Windows: Physical Memory Pushing the limits of Windows: Virtual Memory Pushing the limits of Windows: Paged and non-paged pool There's no reason not to use 64-bit if your hardware supports it. Edited May 25, 2009 by iCeFuSiOn Link to comment Share on other sites More sharing options...
The_Decryptor Veteran Posted May 25, 2009 Veteran Share Posted May 25, 2009 See, I always forget something. Yes, the program needs to be specially marked as such. VB.NET Express isn't as far as I can see (but they could be doing it manually, or not at all) Link to comment Share on other sites More sharing options...
nunjabusiness Posted May 25, 2009 Share Posted May 25, 2009 If you have 2 GB or more memory, then go with 64-bit as long as your processor supports it and you have drivers for your computer. The performance difference with 32-bit programs running in WOW64 is at best -/+ 1-2%, depending on the application which isn't really noticible. In terms of memory usage, you may see it 2 or 3% higher than when 32-bit Windows but you also have to account for the WOW64 subsystem. Again, the difference is not noticible in day to day operations. I've run 64-bit Windows Vista on many different machines with different configurations. It is a common myth that the only real benefit of using 64-bit Windows is that you can access 4 GB or higher in physical RAM and that you should have 4 GB or higher to run 64-bit Windows. This is false; there are benefits to running 64-bit Windows even when you have less than 4 GB of RAM (and 64-bit works quite happily even with 2 GB of RAM). If you want to understand the differences in memory addressing between 32-bit and 64-bit Windows, I recommend checking out a few blog posts made by Mark Russinovich, a technical fellow at Microsoft: Pushing the limits of Windows: Physical Memory Pushing the limits of Windows: Virtual Memory Pushing the limits of Windows: Paged and non-paged pool There's no reason not to use 64-bit if your hardware supports it. Good response! Hopefully a number of people will benefit from Russinovich's wisdom. As far as I am concerned Sysinternals made a huge difference in the world of Windows and MS really lucked out bringing him into camp. Don't forget, upgrading to 64-bit means you at least WILL BE ABLE TO upgrade the memory and actually benefit from it later. RAM is cheap and everything is going 64-bit eventually so ... Link to comment Share on other sites More sharing options...
shakey_snake Posted May 25, 2009 Share Posted May 25, 2009 Yes, 64-bit apps require more disk space (often 10-50%) and more RAM. 32-bit software running in the emulator on 64-bit Windows also use more resources than they would running natively, however it's pretty negligible on a modern system.The advantage is that you have the freedom to run 64-bit apps if you have any. 32-bit apps aren't "Emulated" in 64-bit operating systems. :rolleyes: Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 32-bit apps aren't "Emulated" in 64-bit operating systems. :rolleyes: The whole 32-bit Windows environment is emulated, the only thing that isn't emulated are the x86 instructions themselves which are but a small piece of the puzzle. Link to comment Share on other sites More sharing options...
Ci7 Posted May 25, 2009 Share Posted May 25, 2009 32-bit apps aren't "Emulated" in 64-bit operating systems. :rolleyes: yes and No it isnt if you have x86-64 Edtion (Customer Edtion) Emulated if you are using windows i64(intel itanium64) edition which emulate 32bit. the problem that people mistake the former with the latter Link to comment Share on other sites More sharing options...
Subject Delta Posted May 25, 2009 Share Posted May 25, 2009 Yes, 64-bit apps require more disk space (often 10-50%) and more RAM. 32-bit software running in the emulator on 64-bit Windows also use more resources than they would running natively, however it's pretty negligible on a modern system.The advantage is that you have the freedom to run 64-bit apps if you have any. Not true at all, the only difference between a native X64 and X86 app is very small. For example, the X64 version of WMP in Windows 7 build 7100 is only 3kb larger than the X86 version, and it doesn't consume any more memory. There is no emulation code in 64 bit applications, nor does the wow64 subsystem (X86 translation) increase resource usage, in fact X86 applications run just as fast on Windows X64 as they do natively on X86 versions of Windows. The extra disk space consumption of X64 versions of Windows is actually caused by the fact that they have to include all of the 32 bit binaries that form the wow64 emulation system, and there are also some applications (WMP and IE come to mind) for which both 32 and 64 bit binaries are supplied. Also, wow64 is actually technically a translation layer and not an emulator Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 Not true at all, the only difference between a native X64 and X86 app is very small. For example, the X64 version of WMP in Windows 7 build 7100 is only 3kb larger than the X86 version, and it doesn't consume any more memory. AMD64 binaries are bigger, and it can vary by as much as 50%. Can does not mean "always will." If you want to use WMP as an example, take a look at the DLL files that actually implement most of the functionality. I have repeatedly stated that it doesn't really matter, but it's still a fact. There is no emulation code in 64 bit applications, nor does the wow64 subsystem (X86 emulation) increase resources, in fact X86 applications run just as fast on Windows X64 as they do natively on X86 versions of Windows. They do not. Running them in the emulator involves redirecting and thunking calls between the 32-bit emulated environment and the actual 64-bit OS. This has overhead, as does having all the 32-bit libraries loaded. Like I have repeatedly stated though, it's fairly negligable and not something you need to worry about. I personally run Windows 7 64-bit with 2GB RAM with no issues. the problem that people mistake the former with the latter The problem is that people do not understand that there is a lot more involved in running a 32-bit application than simply executing the x86 instructions. Well, the real problem is that people get hung up on the word "emulator," which is actually correct but not very relevant to the discussion. You can call it the "virtualized 32-bit environment" if it makes you happy, I don't care. It's still a component worth mentioning as it is a very important part of 64-bit Windows. Link to comment Share on other sites More sharing options...
Subject Delta Posted May 25, 2009 Share Posted May 25, 2009 And like I said, wow64 is NOT an emulator, it is a translation layer. All that it does is translate APIs. Granted, having 32 bit libraries creates memory usage overhead, but I haven't came across any 32 bit applications that run more slowly in any 64 bit versions of Windows that I have used. Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 Like I said, you can choose to call it whatever you like even though the accepted terminology is emulator, it makes no difference to me or the topic. In fact, none of it matters much other than as a technical trivia unless you're obsessed with performance and dread the thought of losing a percent or two. For most people it doesn't, and shouldn't, matter, but it seemed like the original poster wanted the raw facts. Link to comment Share on other sites More sharing options...
drbobiii Posted May 25, 2009 Share Posted May 25, 2009 In short, no. It's not worth the money unless you upgrade your memory. Just wait until your get a new computer or Win7. Edit: If MS still lets you upgrade 32->64 for free, you might as well. At least next time you reinstall Windows. Link to comment Share on other sites More sharing options...
Eric Veteran Posted May 25, 2009 Veteran Share Posted May 25, 2009 It doesn't emulate anything. All it does is restrict the address range and redirect calls from the 32-bit system folder to the 64-bit folder. The industry terminology for it is a thunking layer. It's the same concept Windows 95 used to run 16-bit Windows code. Link to comment Share on other sites More sharing options...
ToneKnee Posted May 25, 2009 Share Posted May 25, 2009 By default, 32bit apps have a 2GB memory limit on 32bit Windows (they can work around it though, but it requires extra effort). On 64Bit Windows, that per 32Bit app limit is doubled to 4GB.So just by running on a 64Bit host OS, 32Bit apps can use twice as much memory "for free". I'm pretty sure I heard somewhere that if applications went over a certain memory usage it can cause application instability? Link to comment Share on other sites More sharing options...
hdood Posted May 25, 2009 Share Posted May 25, 2009 It doesn't emulate anything. All it does is restrict the address range and redirect calls from the 32-bit system folder to the 64-bit folder. The industry terminology for it is a thunking layer. It's the same concept Windows 95 used to run 16-bit Windows code. It emulates the 32-bit kernel (internally by providing thunks for the kernel and kernel-mode functions (like most of Win32)). It emulates the 32-bit Windows environment (internally by running the 32-bit NT API (ie ntdll) and all 32-bit system libraries on top of the emulated kernel.) It emulates the 32-bit registry (internally by redirecting or reflecting the calls to places in the 64-bit registry.) It emulates the 32-bit file system (internally by redirecting calls to places in the 64-bit file system.) Calling it an emulator or emulation layer is the most descriptive and easiest to understand choice, and is done by Microsoft in their literature. Link to comment Share on other sites More sharing options...
Subject Delta Posted May 25, 2009 Share Posted May 25, 2009 I'm pretty sure I heard somewhere that if applications went over a certain memory usage it can cause application instability? Yep, it all depends on if the application is designed with the higher limit in mind. More of an issue with older applications than newer ones mind you Link to comment Share on other sites More sharing options...
Recommended Posts