views:

595

answers:

5

I've seen one idea on this blog, it seems a great solution especially if you work on a laptop because you don't have to fear the thunder, but you might fear the blue screen of death. We can also use a software to synchronize the RAM disk with another folder on the hard drive.

Do you have any ideas to improve the productivity of developers with a RAM Disk ?

The avantage of the RAM is that it becomes really really cheap, with 64b coming it might be very interesting to have ~6 Go to speed up your productivity.

+5  A: 

Your operating system uses memory to cache data and programs - if you use a RAM drive you stop it from doing that. RAM drives on modern operating systems are typically a performance pessimisation.

anon
I think the phrase "performance pessimisation" is popular for poeple trying to be ironic but I think you may not be totally accurate. The I/O caches are not that big first of all. Second of all the usage patterns an IDE and compiler uses are not going to get much benefit from a cache, particularly in order for it to improve I/O performance over RAM disks. RAM disks do have certain problems with caching but this is in terms of proper utilization of the RAM disk itself.
BobbyShaftoe
Not talking about I/O caches, but about VM cacheing. I agree that is not clear from my post - edited.
anon
How would a RAM drive prevent the use of VM? And what does VM have to do with using memory to cache data (doesn't that happen with or without VM)? The blog author also claims that Visual Studio isn't caching data in memory but instead reads from the disk each time. So how would turning those disk I/Os into memory I/Os be a "performance pessimisation?"
Calvin
A RAM disk prevents the use of VM cacheing of program code (executable instructions) and text (data), which originaly came from disk, because a RAM disk normally takes up a fixed amount of memory that cannot be used for anything else. Please note I am not talking about I/O buffering here.
anon
Then a RAM disk only prevents the use of memory caching in so much as using a segment of memory for one thing prevents it from being used simultaneously for something else. In that case, get more memory, or limit your RAM disk size. I still don't know what you mean by VM caching and how that is different from normal memory use. And if the disk data is already stored in RAM, then why does it matter if it's not being "cached" by VM?
Calvin
M (I am talking about virtual memory) loads from pages from disk as they are needed and discards them if there is not sufficient real memory to contain them all. The more real memory available to the VM manager, the fewer pages it has to discard and the more efficiently it performs.
anon
A: 

Why not coding inside a virtual machine which is in a RAM Disk, synchronized in the hdd with a software chich takes care of the synchronization ?

Take a look at this video, do you imagine the gain of productivity ?

Nicolas Dorier
Wow, it even speeds up your internet connection! Amazing!
Calvin
+1  A: 

While developing I am not spending a lot of my time waiting for my IDE and tools or compiletimes. I spent most of the time with thinking, testing, debugging or just on typing.

I don't believe that I would gain a lot of productivity by using a ram disk over other types of memory caches if it would not speed up testing and debugging!

BTW I would not even try to develop on a "bare" laptop which limits my productivity with it's bad keyboard and monitor setup for long sessions.

But then... depending on what you develop it may greatly help to get your testing environment into a ram disk and/or onto different computers. This is where VMWare shines as productivity enhancement.

OderWat
+1  A: 

I suggest you use tempfs in Linux. It does the same approach as Ram-Disk

stanleyxu2005
A: 

I looked at a few Ramdisk devices like the GC-RAMDISK and whilst their performance is indeed impressive, they were all either too small for practical use (4GB limit on the Gigabyte model) or targeted towards enterprise servers with a price tag to match. There didnt seem to be an intermediate affordable solution targeting performance workstations.

I would however encourage all developers to get their hands on a decent SSD. The Intel G2 drives are reasonably priced and offer awesome performance. The kind of IO usage patterns seen with IDEs/compiling are a perfect match for SSDs. Visual Studio is snappy and responsive even with enormous solutions loaded. I couldnt go back to mechanical HDDs for development.

Alex