ramBunctious

RAM Disk Comparisons


Elden and Bob, the coathors of ramBunctious, have used RAM disks for as long as we've used Macs. We've loved using some of the RAM disk programs available, and we leveraged their speedy accesses to speed up our compiles and other disk-intensive tasks.

So why did we write our own?

Initially, it was because one of our favorites (it's included in the chart below) could not have multiple RAM disks mounted simultaneously. So if we wanted to retrieve a source code file on another RAM disk, we'd have to unmount the current RAM disk, mount the other RAM disk, copy the file to the hard drive, and finally remount the original RAM disk and use the file.

This was a headache, and we decided to write our own RAM disk program -- initially solely to address this drawback. But we decided that if we were going to go to the work of implementing our own RAM disk program, we might as well set lofty goals for ourselves.

These goals included:

Since our initial implementation of ramBunctious 1.0, we've enhanced ramBunctious regularly, adding features from time to time to guarantee that ramBunctious stays at the forefront of Macintosh RAM disk programs.


The RAM disk programs in this comparison are:

Feature ramBunctious Apple's AppDisk ShrinkWrap
Multiple RAM disks mounted simultaneously
YES!
NO
NO
YES!
Memory reclaimable without a restart
YES!
NO
YES!
sometimes 1
Save contents to disk
YES!
usually 2
YES!
YES!
Real-time write-through to disk
YES!
NO
NO
Not really 3
Timed save to disk
YES!
NO
YES!
NO
Balloon Help
YES!
YES!
NO
YES!
Read/write "LED" access indicator
YES!
NO
NO
NO
AppleScriptable
YES!
NO
NO
YES!
Honors VM4
YES!
NO
YES!
NO
1 Most "reclaimable" RAM disks use the Process Manager heap. But ShrinkWrap stores its RAM disks in the System Heap. This memory is reclaimable when you put away a ShrinkWrap RAM disk, but it's not always easy to reclaim for applications to use. If a ShrinkWrap RAM disk is in the System Heap, and any other program happens to create a pointer in the System Heap above the ShrinkWrap RAM disk, then the System Heap is incapable of shrinking down once the ShrinkWrap RAM disk is put away. The System Heap is "stuck" wasting the RAM until the other program releases its pointer. And if an extension or some part of the MacOS happens to be the one that allocated the pointer, then that RAM could be wasted until a restart.
2 Not all Macintoshes allow the RAM disk to save at shutdown.
3 ShrinkWrap allows you to choose between using a disk image as a RAM disk or running it directly from the hard drive. If you run it directly from the hard drive, then it is indeed a real-time write-through. But if it is used as a RAM disk, there is no real-time write-through to disk.
4 If virtual memory is turned on, does the RAM disk program use VM? Or does it "exempt" itself from VM at the risk of lowering overall system performance? A lengthier explanation is in the glossary.

Several timings were taken using the System Info utility in Norton Utilities 3.5. The disk cache was set to 128K as suggested, and virtual memory was off, and AppleTalk was inactive.

All RAM disks were run in the simplest configurations possible. For example, ramBunctious minimized extaneous processing as described in the performance part of the FAQ.

Only the RAM disk programs that work with OS 9 were tested.

Tests were conducted on a 500 MHz G3 PowerBook using the base set of system extensions and running from the AC adapter.

Here is the overall performance bar chart:

overall


Throughput was computed for a range of chunk sizes. See the following graphs of read throughput and write throughput as the chunk size changes, and read throughput and write throughput of totally randomly-sized chunks. (Chunk sizes are described in detail in the glossary.)

random read

random read

In addition to the graphs of throughput, the "relative performance" graphs let us see how well the RAM disks stack up against each other. To clarify the relative performance of each RAM disk at each chunk size, the 100% level was arbitrarily set to the fastest RAM disk tested at each chunk size.

Here are the throughput and relative performance graphs for read operations.

read throughput
read relative throughput

Here are the throughput and relative performance graphs for write operations.

write throughput
write relative throughput


What follows is the raw data copied from a Norton Utilities 3.5 System Info test run on each RAM disk. The tests were performed with a 128K disk cache and no virtual memory, as suggested by System Info.

Here's the spreadsheet data.

RAM Disk overall
performance
read/write random
(K/sec)
1K
(K/sec)
4K
(K/sec)
16K
(K/sec)
64K
(K/sec)
256K
(K/sec)
AppDisk 9530 read 14039.8 17753 51500 88100 121300 126696
write 12960.5 15441 47111 92310 146242 149491
ShrinkWrap 10419 read 16251.3 20538 57733 93004 124302 129540
write 14845.4 17792.8 54180 98147 148315 152657
Apple 10847 read 20545.2 21802 60589 95147 125839 132092
write 12983.2 16990.1 48877 89387 139024 147663
ramBunctious 11083 read 18037.9 22622 61818 96732 126231 131502
write 16436.6 20417.4 59623 103504 158155 155944