Should you have a RAM Disk ?

If you put this question into any on-line 'user forum', Conventional Wisdom will always reply with a long-winded 'cut&pasted' response that reduces to "NO, NEVER". As usual, Conventional Wisdom is wrong - and will be quite rude when (if) you tell them so :-) To sum up the 'NO, NEVER' lobby argument, they will point out that Windows can 'make use' of all available RAM, and by denying it some RAM (i.e. allocating some to a RAM disk) you are forcing Windows to use more 'Virtual Memory' instead (which means it has to access it's swap file on your hard disk) and this will slow it down. But the real answer is, of course, 'it depends'. On a 32bit system, 'no' is essentially correct - but only for the first 3.5Gb or so (all 32 bit versions 'consumer' of Windows are licence limited to no more than 4Gb of address space and, after deducting the i/o address space, that leaves no more than 3.5Gb for RAM). Any RAM above that limit should always be allocated to a RAM disk (of course) because that's the only way to make it accessible. The only question would be 'what to use it for ?' and that's where 'it depends' comes in again. If you are using your PC to 'multi-task', with half a dozen edit windows and two dozen browser tabs/windows open at the same time, placing the swap file on RAM disk may be your best choice. However if you use your PC mainly for one intensive photo or video editing task at a time, you are far better off using the RAM disk for your /temp files (and 'trial build / project save' files) = I refer you to the work-flow answer below. On a 64bit system with only 4Gb of RAM, 'no' is basically correct. If you have 4-8Gb, 'no' is only sometimes correct and by the time you reach 16Gb it's never correct. It's true that Windows (and the applications you install) will indeed 'try to make use' of all available RAM. However 'make use' is different from 'make productive use'. Often applications will stuff your RAM full of their own components at power-up 'just in case' you decide to 'launch' that app. later on (MS Office does this a lot) after all, what's another few minutes of your time at boot-up if their over-bloated app. can 'launches' a few seconds faster later on ? Windows also does it's own bit of 'lets waste a few minutes by stuffing a few Gb's of RAM with unasked for app. code' by 'monitoring' the apps you use and doing the same thing. Windows also has a habit of 'keeping' DLL's 'in RAM' after you close an app. 'just in case' you decide to launch that app. again 'soon'. Finally, anyone who browses the web (and uses Firefox in particular) will note now the browser 'RAM in use' continues to creep up over time even when you are not browsing (this is down to the browser following links on the pages you have open and 'pre-fetching' content 'just in case' you decide to follow that link 'soon') - and whilst this may speed up web browsing it also leads to Gigabytes of unproductive RAM use. Remember - all this pre-fetched garbage has to be 'swapped' off to hard disk as soon as you do something that actually has a real use for that RAM. Maximising the productive use of your RAM depends on your work-flow (i.e. what you are doing and how you achieve it) and, oddly enough, it's your typical RAM intensive Photo and Video Editing work-flow that can really benefit from a RAM disk. A single app. doesn't need an infinite amounts of RAM - even if we ignore the fact many applications are limited to the old 32bit build address limit of 2Gb (or, if LARGEADDRESSAWARE, 4Gb) the fact is that few people actually edit a photo (or even a movie) much larger than 4Gb (DVD size) anyway. So if Windows has 4-6Gb of RAM, any above this limit would be better used as a RAM disk (rather than left for Windows and overbloated commercial apps to fill with whatever random code they decide you might want to use 'soon') For most people, a typical work-flow would be to make some edits then do a 'trial' build and view the result. This cycle is repeated a number of times until you are happy with the result - and anyone who does this will know that the most 'wasted time' is whilst waiting for the 'assembly' of your edit to complete and waiting for the resulting file to 'save' - and this is where a RAM disk can significantly speed up the process. If you ensure the applications /temp files are placed on the RAM disk and you both 'Save Project' and 'build' to the RAM disk, your 'try it and see' cycle times will be significantly improved. Once you have the 'perfect' video, a 'drag and drop' from RAM disk to hard drive will typically be faster than using the application to 'save' direct to the hard drive.