RAM nowadays seems to be one of the most underused parts of our systems. An average system today has at least 4GB to 6GB of RAM installed, and with the advent of new chipsets - and with RAM dropping in price - higher configurations are becoming more common.
Still, the average computer user hardly makes full use of their RAM. Far from it. Unless you're running highly demanding games or other specialized applications, you will most probably never push your ample RAM to its full capacity and potential. That's where a RAMdisk comes in handy and trust me, once you start using one you'll never look back.
I have tested some of the most popular RAMdisk applications out there and the numbers surely tell a story. So far Primo RAMdisk by Romex Software has produced some of the fastest results but it is a commercial solution. For the purposes of this mini tutorial I have used another excellent program, ImDisk Virtual Disk Driver.
ImDisk doesn't have the sheer speed and wealth of options that a commercial app like Primo offers but it's speeds are definitely decent; in fact ImDisk is faster than a lot of its commercial competition out there. Actually RAMdisks are so fast that most users wouldn't notice much difference between Primo and ImDisk in day to day use and without using benchmarks, (unless of course they constantly move files from/to the RAMdisk, in which case the speed differences will eventually become evident). ImDisk is fast, but it is also FREE! I like this word and I'm sure you'll like it too when you get to transform most of your underused RAM into a superfast drive for no extra dosh.
On with the show. First download and install ImDisk from here:
Tools and utilities for Windows
Installation is dead-simple and there's nothing to configure. The program will create a Control Panel applet which you can use to manually create a RAMdisk of your choice. This however, is not necessary. During this guide we will easily configure a start-up task which will automatically create a RAMdisk of the size and file system of your choice, on every Windows startup. In this case we will create a 25000MB exFAT RAMdisk (exFAT in my benchmarks has produced the fastest results). We will also auto-label it as RAMDISK and will auto-create a TEMP folder in it on every start-up. You can change this to any size or label you like, for as long as you have enough RAM left for the system.
If you use a swap/page file then you should leave at the very least 3GB of RAM free for the system . If you have disabled your swap file, then leave at least 4GB to 5GB for the system to avoid out of memory errors. You can then assign the rest of your RAM to the RAMdisk.
PART 1: SCHEDULED TASK CREATION
So, on with the task creation. To Run Task Scheduler:
(A quicker way to get there is to type Task at the search bar of your START button and the shorcut to the scheduler will appear on top).
- Click the Start button.
- Click Control Panel.
- Click System and Maintenance.
- Click Administrative Tools.
- Double-click Task Scheduler.
Run it and click Task Scheduler Library on the left pane. Don't select any of the subfolders under that name, just click the name itself. Right-click on the right pane and select "Create Task". Make it look like the screenshot below and click OK - don't forget to change the number 25000 to whatever RAMdisk size in megabytes you are configuring for your own system, and to also enter a description if you want to.
NOTE: Your own user name will be next to the Author field, and also next to the Change User Or Group button. I have erased my own details from the screenie below to avoid confusion:
Select the Triggers tab next and click New. Make it like the following screenie, and click OK:
Select the Actions tab next and click New. Make it like the following screenie. Not all arguments are visible in the above picture, so I am supplying examples below:
On the Add Arguments (optional) field, paste the command structure as it is on the two examples below. The 25000 number should be changed to your desired RAMdisk size, which should be a number lower or equal to the total size of your RAM minus 3GB. This will ensure that Windows has 3GB left to use. For example, if you only have 4GB of RAM then you should create a RAMdisk of around 1000MB. In this case just change the 25000M parameter to 1000M. You can also choose a different file system, and also change the letter assigned to your new RAMdisk (make sure you don't specify a letter that is already in use by Windows for another device).
For example, for a 1000MB RAMdisk using the exFAT file system and having the letter R assigned to it:
-a -s 1000M -m R: -p "/fs:exFAT /q /y"
Or, for a 1000MB RAMdisk using NTFS and having the letter Z assigned to it:
-a -s 1000M -m Z: -p "/fs:NTFS /q /y"
PART 2: BATCH FILE CREATION:
After defining your desired arguments as described above, leave Task Scheduler open. Just miminize its window, we'll get back to it in a minute. At this point you have to make sure that your computer is configured to show file extensions. If it is not then go to the Control Panel, first, run the Folder Options applet, and under the View tab make sure to remove the tick from the Hide extensions for known file types box. Apply and OK the change, then close Control Panel and run Windows Explorer. Navigate to the root of your C: drive, create an empty notepad text file there, and name it ImDisk TEMP FOLDER.txt. Open it and paste the following lines in it:
label R: RAMDISK
On the above lines you can change the drive letter; just make sure it is the same letter as the one you used earlier in Task Scheduler, and of course you can also change the label to a different one, again making sure that the label you choose is short.
Save the text file, close it, and change its extension to .bat. Windows will warn you about changing the extension, you can ignore this and proceed with the change. Now you should have a file called ImDisk TEMP FOLDER.bat at the root of your C: partition.
Go back to the Task Scheduler (which you had left open and minimized before), and under Actions click New once more. This time make it look like this:
Also make sure that the RAMdisk creation action that we created earlier is on top, with the .bat action under it.
The last two tabs should look like this:
Click OK and you're done! Now a RAMdisk with the size, file system, drive letter and label of your choice will be automatically initialized every time you start your computer, and a TEMP folder will also be auto-created in it. REMEMBER, ANYTHING RESIDING IN YOUR RAMDISK WILL BE LOST WHEN YOU REBOOT; SO YOU SHOULD NEVER STORE ANY IMPORTANT DATA ON THE RAMDISK THAT YOU HAVEN'T ALSO SAVED ELSEWHERE. You can also configure an image file to be saved/loaded at each shutdown/restart but this can seriously increase your system's startup and shutdown times; so I recommend saving/loading an image manually, and only when it is really needed. You can save an image file from the ImDisk applet in the Control Panel, or just by right-clicking on the RAMdisk itself.
PART 3: ADDITIONAL TWEAKS:
You can now change the default TEMP folder that Windows uses to the RAMdisk TEMP folder. If you do this program installations will fly, and you will be saving your C: drive from a lot of unnecessary hits. To do this right-click on My Computer icon and select Properties. On the top left of the next window click Advanced System Settings and click the Environment Variables button at the bottom. Change both top variables to R:\TEMP as shown in the picture below:
Remember to scroll down the lower pane under System Variables and find the TEMP and TMP variables again, make sure those two are set to R:\TEMP as well.
You can also specify your web browser's temporary folders to reside in the RAMdisk. You have to go to your browser's options and change the location of its temporary folder accordingly. If you choose to do this just make sure you don't try to download any files larger than the capacity of your RAMdisk.
A user can also create simple batch files to automate the creation of specific folders on the RAMdisk, and also the copying of files or folders to the RAMdisk on every startup. The syntax is very simple. In this example I just create a copy of my Skyrim game folder from drive D: to the RAMdisk (assuming that the letter has been assigned to the RAMdisk):
MD "R:\The Elder Scrolls V - Skyrim"
xCOPY "D:\##\The Elder Scrolls V - Skyrim" "R:\The Elder Scrolls V - Skyrim" /K /E /H /O /F
I have set this batch file to delay execution of its commands for 30 seconds after it is ran using the TIMEOUT command. The reason for this is that we don't want this batch file to run before the Scheduled Task that creates the RAMdisk itself. I left 30 seconds to elapse which is more than sufficient for my system, change that value to what is best for your own system. You can interrupt the timer and execute the commands immediately by pressing a key. Or, instead of specifying a command for the delay on the batch file you could create a new Scheduled Task for this batch file and set the new task to run with a delay. Use the MD command and supply the paths for the folders you want to create, then use xCOPY to copy your files/folders over. Save it as a batch file and make a shortcut for it at C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup in order for it to auto-execute with every reboot.
PART 4: A BRIF SPEED DEMONSTRATION:
RAMdisk speeds will vary drastically from system to system, depending on its generation, hardware configuration, RAMdisk software used, as well as the size of the RAMdisk itself. Here's some ImDisk benches on my X79 system:
Finally, here is an updated showdown between Primo and ImDisk: