Ok, so I'm at it again.. trying to find the most effective way to have more than 4GB of RAM on a 32bit version of Windows XP.
Why am I so concerned about this 32-bit Windows XP RAM limit, when there's newer OSes and 64-bit versions out there?
Many people are unable to use OSes that can use more than 4GB of RAM(either by switching to 64 bit OSes or by switching to 32 bit server versions of Windows). I am one of those few people that can't "upgrade" beyond Windows XP 32-bit. I'm sure there also some people out there that do not want to buy Vista or Windows XP64 but find spending a few bucks on RAM and a program a much more appetizing idea. Many of us already have 4GB of RAM, with the top 768MB or so unusable. This means that many of us can pay $50 for access to 768MB of RAM. For someone with 3.25GB of RAM, that's in increase of 20%!
See my old thread at
http://www.tomshardware.com/forum/252402-30-interesting-cheat-barrier for my first try with a Gigabyte I-RAM card with 4GB of RAM.
So after that thread, I started looking around, and I found Superspeed's Ramdisk 9.0.3. You can read about it at http://www.superspeed.com/desktop/ramdisk.php. It can be purchased for $49.95 from their website.
From the website:
Whoa.. wait a minute! Does this mean I can use the unused RAM above the 4GB as a RAMDISK and then put a pagefile on it? Surely there would be some overhead because it's not real directly allocatable RAM, but how much of a performance decrease can I expect? Well, now it's time to play with my system and see what happens...
Here's what I used:
-Asus P5E motherboard with Q6600(g0) and 4x2GB RAM sticks(8GB total)
-Gigabyte I-RAM card was left installed in the computer with 4GB of RAM.
I grabbed a spare hard drive I had laying around and installed the following(mostly to simulate a normal PC with extra software loaded):
Windows XP SP3(32 bit version) with all updates
Symantec Endpoint Protection 11(latest revision).
Adobe Acrobat Reader 9 with all updates
All hardware drivers installed with latest version
Ramdisk 9.0.3.0
Roxio Easy Media Creator 10.0
Raxco Perfectdisk 2008
Winzip 12.0
Intent:
1. Determine the usability and possible performance increase from using the 4GB of RAM above the 32 bit barrier.
2. Benchmark the RAMDISK and I-RAM(4GB) installed in the system.
3. Have fun with this!
Setup:
I installed all software, and set up a 4095MB RAM drive on the computer. Windows XP by default used only 3386MB of RAM. 768MB of RAM seemed to be relatively unusable, and the remaining 4GB of RAM was able to be allocated for the swapfile.
RamDisk Plus 9.0.3 found that I had 8192MB of memory according to the BIOS. I had to reserve 768MB of RAM in the RamDisk Plus program(I could not figure out what this 'reserved' space meant from the manual), which allowed me to set up a RAMDISK of the maximum size available(4095MB). I figured out that if you do not choose to backup the RAMDISK at shutdown, when the system is booted again, you are left with a 4GB "hard drive" that is not formatted, so the swapfile isn't there. Unfortunately this is a slight problem. If I have a 4GB RAMDISK image that is going to have to be reloaded on every boot, then my boot times for Windows are going to be astronomically high. Some improvising was in order. Here's what I did:
1. Created the RAMDISK.
2. Rebooted the computer. This saved an image of the RAMDISK on the hard drive.
3. Upon reloading I made the image file read only.
4. Set up the pagefile on the RAMDISK and rebooted.
This is important because the RAMDISK image was only 26MB on my hard drive. Restoring a 26MB image file on system boot-up is a much smaller quantity of data to restore than a 4GB image file. Windows XP will recreate the pagefile.sys on every bootup, which is perfectly fine by me.
I also created a 2GB RAMDISK to simulate having 2GB of RAM used by other applications. This gave my system a total of 1.25GB of physical RAM available for use. I left this 2GB RAMDISK empty, because it's purpose was fulfilled just by creating it.
Benchmarks: (performed using Sisoft Sandra Lite 2009)
RAM Throughput - 5.6GB/sec
RAMDISK - 4.1GB/sec*
I-RAM - 125MB/sec
* - It is important to note one thing at this point. CPU usage when benchmarking the RAMDISK was 100% for 1 of the cores. So it looks like between actual RAM and my RAMDISK is about 25% decrease in performance. However at 4.1GB/sec, I don't think too many people have seen any other media transfer at rates like this. Remember this RAMDISK is unused RAM in this system otherwise. This begs the question of whether the RAMDISK is CPU limited. I'll test this later on.
System Performance:
-Boot-up times were recorded in various configurations(in order of time):
No pagefile and no RAMDISK - 1m26s(makes sense as this is the simplest configuration)
No pagefile and 1.25GB of system RAM - 1m33s*
4GB pagefile on hard drive and 1.25GB of system RAM - 1m33s
4GB pagefile on RAMDISK and 1.25GB of system RAM - 1m40s(23MB image of RAMDISK)
4GB pagefile on RAMDISK and 1.25GB of system RAM - 2m34s(512MB image of RAMDISK... I made the image file writable and it grew to 512MB, so I tested it just for a data point)
* - it should be noted that the system did load comparatively quickly. However I did get a message that I need to increase my swapfile size. Not all of the tray icons loaded at startup.
I would also like to mention that I did try Windows XPs built in compression to compress the 26MB image file(shrinks to 1.8MB), but there was no discernable performance difference.
It appears that there is a 7 second loss of boot time due to the RAMDISK being created and restored.
If I had chosen to have a 4GB image file to restore on every bootup, then it appears that my boot times would have been about 9 minutes. That is just a bit too slow for me. I'm glad that my little workaround works.
Usage Performance:
-I zipped a 1GB ISO file I copied to the I-RAM to minimize hard drive delays when compressing. I wanted to keep this test simple. I used 7-Zip to make a .7z file using LHMA compression, Ultra Mode, with a 100MB dictionary(except where noted). 7-Zip reports that about 1GB of RAM is needed to compress with my settings. I chose these settings to force the computer to use swapfile space when compressing the file using 7-Zip. Due to the way compression algorithms work, using anything slower than RAM for compression is going to significantly slow down the rate of compression. Listed in order by time:
4GB pagefile on RAMDISK - 7m5s
4GB pagefile on RAMDISK and 1.25GB system RAM - 7m20s
4GB pagefile on RAMDISK(128MB dictionary, 1.4GB RAM needed) - 7m42s
No pagefile and no RAMDISK - 8m4s
4GB pagefile on I-RAM and 1.25GB system RAM - 10m40s*
4GB pagefile on RAMDISK and 1.25GB system RAM(128MB dictionary, 1.4GB RAM needed) - 26m3s
4GB pagefile on I-RAM and 1.25GB system RAM(128MB dictionary, 1.4GB RAM needed) - Cancelled.. estimated time was at almost 1 day. There is no way any reasonable person would actually attempt to compress a 1GB ISO in a configuration such as this.*
4GB pagefile on hard drive and 1.25GB system memory - Cancelled.. estimated time was > 12 hours and climbing. It was only at 8% after 30 minutes. There is no way any reasonable person would actually attempt to compress a 1GB ISO in a configuration such as this.
No pagefile and 1.25GB of system RAM - Insufficient Free RAM.
* - I compressed the file on the hard drive vice the I-RAM because I was attempting to determine how much performance is lost using the I-RAM for a swapfile when the amount of RAM needed for compression exceeds the total system RAM.
Other things I did:
My ram is Patriot Extreme Performance PC2-6400. It is rated for 800Mhz @ 4-4-4-12 @ 2.2v. I decided to set my RAM timings to these speeds and test the performance of the RAMDRIVE.
800Mhz @ 4-4-4-12 - 4.17GB/sec to/from RAMDISK
800Mhz @ 5-5-5-15 - 4.14GB/sec to/from RAMDISK
A very slight performance increase is found. It is most likely within the tolerances of the test to be statistically insignificant.
Also, as found above it seemed as though the RAMDISK performance might be bottlenecked by the CPU. So I changed my FSB to 300Mhz, but left the RAM at 800Mhz.
Default speeds(266x9=2.40Ghz) - 4.1GB/sec to/from RAMDISK
300Mhz FSB(2.70Ghz processor) - 4.34GB/sec to/from RAMDISK
So it would appear that the CPU is the bottleneck for this application. It is most likely not RAM limited(although more tests would have to be performed to prove this) because the RAMDISK did not perform at the same speed, both times running at 800Mhz. The difference in performance between the 2 shows the overhead from RamDisk Plus. It seems logical to assume that the CPU is the bottleneck because software is simulating a disk.
Things I noticed:
I am curious as to why the 4GB pagefile on the RAMDISK was able to compress the ISO a full minute faster than with no pagefile at all. This seems quite strange to me. I did retest these 2 numbers later and achieved the same results.
I am also curious as to why putting the swapfile on the I-RAM instead of the RAMDISK was faster when the system has only 1.25GB of RAM. My impression is that this is due to where data is coming from/going to when I run my test. 7-Zip needs alot of RAM bandwidth for compression. The I-RAM, although slower in overall bandwidth, might not have been taxed heavily during the actual compression. Add to that the fact that the I-RAM uses the SATA bus, and my RAMDISK competes with the physical RAM for throughput during compression.
Final Thoughts:
I find that this setup is a very usable situation as a go-around for the 4GB barrier. Having 4GB of RAM at full speed, and 4GB at approximately 75% of full speed is about as good as I think I can ever expect. Unfortunately using a compression test was probably not the best way to determine the performance of the RAMDISK compared to physical RAM, it does show that there is some performance gain from using ia RAMDISK in this configuration.
I will admit that using this RAMDISK for a temp folder is another very good alternative, I'm not sure if I would want to use it as such. The temp folder would be erased on every reboot, which seems like a good idea. But there are alot of programs that extract to the temp folder on your computer, and keep files there even after reboot to finish a few small tasks on the bootup. If the temp folder is erased, then those final install steps would not occur. Also, some programs like WinZip compress files to your temp folder, then copy them to your destination location. If you have only 4GB and your temp drive fills, your compression will fail. Same is likely for video editing, large SQL database operations, etc. If this was not an issue for you, then you could set up a RAMDISK that does save on every shutdown, but you would also lose bootup time when the system must restore the RAMDISK.
So, this whole thread took me a whole day to set up and perform. Just as a disclaimer, I did not get paid by anyone to spend my time on this. I wanted to give the forums a little information i've gathered today.
I find it likely that SuperSpeed will makes some money off of this thread with all of this information I have posted. I think this is a great idea, but I probably will not be buying a copy just yet. But if SuperSpeed contacts me, I definitely won't turn down a free copy!
Why am I so concerned about this 32-bit Windows XP RAM limit, when there's newer OSes and 64-bit versions out there?
Many people are unable to use OSes that can use more than 4GB of RAM(either by switching to 64 bit OSes or by switching to 32 bit server versions of Windows). I am one of those few people that can't "upgrade" beyond Windows XP 32-bit. I'm sure there also some people out there that do not want to buy Vista or Windows XP64 but find spending a few bucks on RAM and a program a much more appetizing idea. Many of us already have 4GB of RAM, with the top 768MB or so unusable. This means that many of us can pay $50 for access to 768MB of RAM. For someone with 3.25GB of RAM, that's in increase of 20%!
See my old thread at
http://www.tomshardware.com/forum/252402-30-interesting-cheat-barrier for my first try with a Gigabyte I-RAM card with 4GB of RAM.
So after that thread, I started looking around, and I found Superspeed's Ramdisk 9.0.3. You can read about it at http://www.superspeed.com/desktop/ramdisk.php. It can be purchased for $49.95 from their website.
From the website:
RamDisk Plus adds multiple disk support, system page file support, and a versatile disk image backup and restore facility. You can manually save the RAM disk’s contents to an image file, or have the contents saved automatically when the computer is shutdown. This feature ensures that service and application data stored on the RAM disk can be preserved between system restarts. During the subsequent system start-up, the disk's image is automatically loaded. A "live" RAM disk image may be backed up even with open handles to the volume. A RAM disk viewer lets you load image files as read-only devices.
Memory above 4GB can be used on OS-limited platforms. Virtual disks and removable disks are supported. Disks can be created with partition tables or without. RamDisk 9.0 and RamDisk Plus 9.0 can create partitionable RAM disks, which are supported by Volume Managment software. Windows' MMC disk managment snap-in recognizes and manages partitionable RAM disks. They are also compatible with other software such as Partition Magic and Veritas Volume Manager. RamDisk Plus 9.0 also can create and configure non-partitionable RAM disks, which are compatible with RAM disks created by RamDisk and RamDisk Plus version 8.0. RAM disks can be zeroed out upon removal and the disk image file can be preserved upon removal. A new licensing mechanism binds the software to the machine name rather than a system ID.
Whoa.. wait a minute! Does this mean I can use the unused RAM above the 4GB as a RAMDISK and then put a pagefile on it? Surely there would be some overhead because it's not real directly allocatable RAM, but how much of a performance decrease can I expect? Well, now it's time to play with my system and see what happens...
Here's what I used:
-Asus P5E motherboard with Q6600(g0) and 4x2GB RAM sticks(8GB total)
-Gigabyte I-RAM card was left installed in the computer with 4GB of RAM.
I grabbed a spare hard drive I had laying around and installed the following(mostly to simulate a normal PC with extra software loaded):
Windows XP SP3(32 bit version) with all updates
Symantec Endpoint Protection 11(latest revision).
Adobe Acrobat Reader 9 with all updates
All hardware drivers installed with latest version
Ramdisk 9.0.3.0
Roxio Easy Media Creator 10.0
Raxco Perfectdisk 2008
Winzip 12.0
Intent:
1. Determine the usability and possible performance increase from using the 4GB of RAM above the 32 bit barrier.
2. Benchmark the RAMDISK and I-RAM(4GB) installed in the system.
3. Have fun with this!
Setup:
I installed all software, and set up a 4095MB RAM drive on the computer. Windows XP by default used only 3386MB of RAM. 768MB of RAM seemed to be relatively unusable, and the remaining 4GB of RAM was able to be allocated for the swapfile.
RamDisk Plus 9.0.3 found that I had 8192MB of memory according to the BIOS. I had to reserve 768MB of RAM in the RamDisk Plus program(I could not figure out what this 'reserved' space meant from the manual), which allowed me to set up a RAMDISK of the maximum size available(4095MB). I figured out that if you do not choose to backup the RAMDISK at shutdown, when the system is booted again, you are left with a 4GB "hard drive" that is not formatted, so the swapfile isn't there. Unfortunately this is a slight problem. If I have a 4GB RAMDISK image that is going to have to be reloaded on every boot, then my boot times for Windows are going to be astronomically high. Some improvising was in order. Here's what I did:
1. Created the RAMDISK.
2. Rebooted the computer. This saved an image of the RAMDISK on the hard drive.
3. Upon reloading I made the image file read only.
4. Set up the pagefile on the RAMDISK and rebooted.
This is important because the RAMDISK image was only 26MB on my hard drive. Restoring a 26MB image file on system boot-up is a much smaller quantity of data to restore than a 4GB image file. Windows XP will recreate the pagefile.sys on every bootup, which is perfectly fine by me.
I also created a 2GB RAMDISK to simulate having 2GB of RAM used by other applications. This gave my system a total of 1.25GB of physical RAM available for use. I left this 2GB RAMDISK empty, because it's purpose was fulfilled just by creating it.
Benchmarks: (performed using Sisoft Sandra Lite 2009)
RAM Throughput - 5.6GB/sec
RAMDISK - 4.1GB/sec*
I-RAM - 125MB/sec
* - It is important to note one thing at this point. CPU usage when benchmarking the RAMDISK was 100% for 1 of the cores. So it looks like between actual RAM and my RAMDISK is about 25% decrease in performance. However at 4.1GB/sec, I don't think too many people have seen any other media transfer at rates like this. Remember this RAMDISK is unused RAM in this system otherwise. This begs the question of whether the RAMDISK is CPU limited. I'll test this later on.
System Performance:
-Boot-up times were recorded in various configurations(in order of time):
No pagefile and no RAMDISK - 1m26s(makes sense as this is the simplest configuration)
No pagefile and 1.25GB of system RAM - 1m33s*
4GB pagefile on hard drive and 1.25GB of system RAM - 1m33s
4GB pagefile on RAMDISK and 1.25GB of system RAM - 1m40s(23MB image of RAMDISK)
4GB pagefile on RAMDISK and 1.25GB of system RAM - 2m34s(512MB image of RAMDISK... I made the image file writable and it grew to 512MB, so I tested it just for a data point)
* - it should be noted that the system did load comparatively quickly. However I did get a message that I need to increase my swapfile size. Not all of the tray icons loaded at startup.
I would also like to mention that I did try Windows XPs built in compression to compress the 26MB image file(shrinks to 1.8MB), but there was no discernable performance difference.
It appears that there is a 7 second loss of boot time due to the RAMDISK being created and restored.
If I had chosen to have a 4GB image file to restore on every bootup, then it appears that my boot times would have been about 9 minutes. That is just a bit too slow for me. I'm glad that my little workaround works.
Usage Performance:
-I zipped a 1GB ISO file I copied to the I-RAM to minimize hard drive delays when compressing. I wanted to keep this test simple. I used 7-Zip to make a .7z file using LHMA compression, Ultra Mode, with a 100MB dictionary(except where noted). 7-Zip reports that about 1GB of RAM is needed to compress with my settings. I chose these settings to force the computer to use swapfile space when compressing the file using 7-Zip. Due to the way compression algorithms work, using anything slower than RAM for compression is going to significantly slow down the rate of compression. Listed in order by time:
4GB pagefile on RAMDISK - 7m5s
4GB pagefile on RAMDISK and 1.25GB system RAM - 7m20s
4GB pagefile on RAMDISK(128MB dictionary, 1.4GB RAM needed) - 7m42s
No pagefile and no RAMDISK - 8m4s
4GB pagefile on I-RAM and 1.25GB system RAM - 10m40s*
4GB pagefile on RAMDISK and 1.25GB system RAM(128MB dictionary, 1.4GB RAM needed) - 26m3s
4GB pagefile on I-RAM and 1.25GB system RAM(128MB dictionary, 1.4GB RAM needed) - Cancelled.. estimated time was at almost 1 day. There is no way any reasonable person would actually attempt to compress a 1GB ISO in a configuration such as this.*
4GB pagefile on hard drive and 1.25GB system memory - Cancelled.. estimated time was > 12 hours and climbing. It was only at 8% after 30 minutes. There is no way any reasonable person would actually attempt to compress a 1GB ISO in a configuration such as this.
No pagefile and 1.25GB of system RAM - Insufficient Free RAM.
* - I compressed the file on the hard drive vice the I-RAM because I was attempting to determine how much performance is lost using the I-RAM for a swapfile when the amount of RAM needed for compression exceeds the total system RAM.
Other things I did:
My ram is Patriot Extreme Performance PC2-6400. It is rated for 800Mhz @ 4-4-4-12 @ 2.2v. I decided to set my RAM timings to these speeds and test the performance of the RAMDRIVE.
800Mhz @ 4-4-4-12 - 4.17GB/sec to/from RAMDISK
800Mhz @ 5-5-5-15 - 4.14GB/sec to/from RAMDISK
A very slight performance increase is found. It is most likely within the tolerances of the test to be statistically insignificant.
Also, as found above it seemed as though the RAMDISK performance might be bottlenecked by the CPU. So I changed my FSB to 300Mhz, but left the RAM at 800Mhz.
Default speeds(266x9=2.40Ghz) - 4.1GB/sec to/from RAMDISK
300Mhz FSB(2.70Ghz processor) - 4.34GB/sec to/from RAMDISK
So it would appear that the CPU is the bottleneck for this application. It is most likely not RAM limited(although more tests would have to be performed to prove this) because the RAMDISK did not perform at the same speed, both times running at 800Mhz. The difference in performance between the 2 shows the overhead from RamDisk Plus. It seems logical to assume that the CPU is the bottleneck because software is simulating a disk.
Things I noticed:
I am curious as to why the 4GB pagefile on the RAMDISK was able to compress the ISO a full minute faster than with no pagefile at all. This seems quite strange to me. I did retest these 2 numbers later and achieved the same results.
I am also curious as to why putting the swapfile on the I-RAM instead of the RAMDISK was faster when the system has only 1.25GB of RAM. My impression is that this is due to where data is coming from/going to when I run my test. 7-Zip needs alot of RAM bandwidth for compression. The I-RAM, although slower in overall bandwidth, might not have been taxed heavily during the actual compression. Add to that the fact that the I-RAM uses the SATA bus, and my RAMDISK competes with the physical RAM for throughput during compression.
Final Thoughts:
I find that this setup is a very usable situation as a go-around for the 4GB barrier. Having 4GB of RAM at full speed, and 4GB at approximately 75% of full speed is about as good as I think I can ever expect. Unfortunately using a compression test was probably not the best way to determine the performance of the RAMDISK compared to physical RAM, it does show that there is some performance gain from using ia RAMDISK in this configuration.
I will admit that using this RAMDISK for a temp folder is another very good alternative, I'm not sure if I would want to use it as such. The temp folder would be erased on every reboot, which seems like a good idea. But there are alot of programs that extract to the temp folder on your computer, and keep files there even after reboot to finish a few small tasks on the bootup. If the temp folder is erased, then those final install steps would not occur. Also, some programs like WinZip compress files to your temp folder, then copy them to your destination location. If you have only 4GB and your temp drive fills, your compression will fail. Same is likely for video editing, large SQL database operations, etc. If this was not an issue for you, then you could set up a RAMDISK that does save on every shutdown, but you would also lose bootup time when the system must restore the RAMDISK.
So, this whole thread took me a whole day to set up and perform. Just as a disclaimer, I did not get paid by anyone to spend my time on this. I wanted to give the forums a little information i've gathered today.
I find it likely that SuperSpeed will makes some money off of this thread with all of this information I have posted. I think this is a great idea, but I probably will not be buying a copy just yet. But if SuperSpeed contacts me, I definitely won't turn down a free copy!