views:

175

answers:

5

My coding platform is a Vista machine with 4GB RAM. And while the machine is slick, I know there are 800MB of RAM that is not used at all. (only about 3.2GB or 4GB is used).

can I installed something to help my platform for coding? I think Wubi will not be able to use those RAM, but VMware or VirtualPC might be? Or a RAM disk so that downloading and installing tools with big file to unzip can be a lot faster? (such as unzipping Ruby installation files which seems like it is 17,000 files to unzip -- maybe exaggerating)

+3  A: 

The upper 500MB-1GB of RAM is reserved for Windows and device drivers on 32 bit Windows. It varies in size by a number of factors but the largest is the amount of RAM your graphics card has as this amount will generally be reserved from the top of the 32 bit address space. The only way to use that is to install a 64 bit operating system (eg Vista 64 bit). Virtualization won't help you because the memory isn't there for you to give to guest OSs.

cletus
Actually, just run two processes, and each can use its own separate 3GB of virtual memory mapped to different parts of physical memory.
Curt Sampson
That still doesn't use the "missing" 800MB of memory. They're just using disk space insstead and that wasn't the question.
cletus
+1  A: 

Be careful with RAM disks. As often as not the memory would be better used for the application, background tasks or system cache. You often end up with data duplicated between the ramdisk and read/write buffers or process memory.

If unzipping files is bottle-necking your application then consider doing it in the background while the user sets their preferences, reads your program intro or other time-consuming but not io-intensive task.

SpliFF
oh.. i mean the Ram-disc that uses the unused 800MB...
動靜能量
I know, but can you be sure the RAM will ALWAYS be unused? What if other applications are installed, left open, scheduled by the system etc... Even then it's common for RAM reported unused to actually be available for system temporary buffers. Finally, the closer you are to your system maximum the closer you are to activating virtual memory swapping and its associated performance drop.
SpliFF
A: 

No app or driver will correct the physical/available memory disparity because they operate within the OS's limitations. You can never use that physical memory w/ 32-bit Windows. It is not missing; that 800MB does not (cannot) exist.

Only a 64-bit OS can address 4Gb physical memory and utilise it. You can test my assertion w/ any Linux distro LiveCD (I'd suggest Ubuntu 64-bit Desktop).

I have not used 64-bit Vista, but 64-bit Windows Server 2003 worked very well for me (even on a laptop).

+2  A: 

You will need to install a 64bit OS, then you will be able to take advantage of all your ram.

As an aside, 32 bit Linux kernels that have PAE installed/enabled can take advantage of the extra memory, though individual apps will still be limited themselves.

Here's some more information on PAE:

Wikipedia

High Memory in Linux

GreenKiwi
+1  A: 
Peter Stuer