How fast are SD cards?

I've been running Linux on the Beaglebone Black for a year. Works great, but to play with the Arduino Mega ADK I needed something running Android. I could buy a phone, or tablet, or put Android on the Beaglebone. That was the option for me. Android was as slow on the BBB as Linux was fast. Just moving the mouse around was using over half of the CPU. Many people who complain about Android performance on the Beaglebone attribute it to the SD card. Android has to run on the SD card because it is twice the size of the internal flash. Linux fits. To be fair, Android runs on devices with fast CPUs, and flash sized to hold it all. The Beaglebone black has a 1GHz TI Sitara (ARM Cortex A8) and 512MB DDR3 RAM, but the flash is "only" 2GB.

I went to Fry's Electronics and grabbed a SanDisk Ultra UHS-1, since my no-name Chinese knock-off 16GB class 10 was probably fake, anyway. The SanDisk Ultra card says right on it that it is "twice as fast as cards half it's speed". I bought it anyway - had to see it in action. 30MBps maximum transfer speed, they claim. I couldn't see a difference! Was the SD card not the problem, or was the new card similar in speed? There is a drawer here somewhere full of SD cards, mostly micro, and it's time to rummage through them.

How fast are SD cards, anyway? To test that, I took some SD cards and performed a dd copy to them with a 3.9GB file. Then I read 512MB from them. The Mac Mini has a 2.5Gbps pipe going to the SD card, so that isn't much of a factor. The exact method was:

  1. Plug in a card.
  2. "diskutil list" to show the card, which was always /dev/disk2
  3. "diskutil unmountDisk /dev/disk2" which unmounts the disk represented by the card.
  4. "dd if=BBB.img of=/dev/disk2" which copies a 3.9GB Android image onto the card.
  5. "diskutil list" to show the card, which is automatically remounted.
  6. "diskutil unmountDisk /dev/disk2" which again unmounts the disk.
  7. "dd if=/dev/disk2 of=/dev/null bs=512 count=1000000" which copies 512MB into the ozone somewhere.
Micro SD Card Write Speed (BPS)Read Speed (BPS)Cost
Brand X 16GB Class 10 1,809,355 9,925,493$5.00 on ebay
Brand X 32GB Class 10 548,556 7,667,448$8.00 on ebay
SanDisk 16GB Class 4 1,056,689 4,167,954From a new Nikon camera
SanDisk 16GB Class 10 UHS-11,526,966 9,433,772 $18.00 at Fry's

So, that's nearly real world. What about disk test numbers..?

Micro SD Card Write Speed (MBps)Read Speed (MBps)Cost
Brand X 16GB Class 10 14.570.0$5.00 on ebay
Brand X 32GB Class 10 1.717.4$8.00 on ebay
SanDisk 16GB Class 4 4.914.2From a new Nikon camera
SanDisk 16GB Class 10 UHS-19.844.1$18.00 at Fry's

The cheap knock-off I thought was fake was the one I was using, and it turns out to be the fastest in both read and write performance. So I have reaffirmed my faith in cheap crap memory cards at unbelievable prices from disreputable sources on ebay. And as a side effect, I have come to the realization that a company can get a good reputation in the computer industry, as in any other, without providing any better product, by simply charging 3 times as much. I'll have to look a little closer before my next SSD purchase.