May 13, 2009

Difference between USB and IEEE 1394?

Let me start this off with the disclaimer that this was an apples to oranges comparison (or in this case an Apple to Dell comparison). The reason I thought this was interesting is that there was far more variation than I expected, on the MacBook anyway.

 The machines have similar processors (Intel Core Duo), with the MacBook having a slight edge, 2.0 GHz as opposed to the Dells 1.8 GHz.  However, the Dell has 3 GB of ram as opposed to the Macbooks 1 GB.

 Anyway, I have been trying to get the project I have been working on ( to run on my wife's MacBook with Mac OS X. I have done all of the development on GNU/Linux and it runs very well on all of the versions of GNU/Linux I have tried. I have been using these Western Digital 1 TB external hard drives for storage.  They have both USB and Firewire connections and I have used both on Linux and never noticed any difference (but I had never tested to see if there was any real difference).

A few nights ago I got it compiled and working on the MacBook, but when I tried to store files with the MacBook it was painfully slow.  It was so slow that it was unusable for what I was trying to do.  So this morning I decided to run a test to see if I could figure out what was happening.  I connected the WD drive with the USB cable to the MacBook, prep'd it and stored 111 photos (384 MB).  These are the times:

    real    17m3.569s
    user    2m17.587s
    sys     0m31.001s

Then I wondered if the problem was the USB connection so disconnected the drive and reconnected it with the Firewire cable and imported exactly the same 111 files.  It was 4X faster than it was with the USB connection:

    real    4m10.148s
    user    2m1.636s
    sys     0m28.276s

I thought this was pretty weird because I had never noticed that much difference between USB and Firewire when running on GNU/Linux.   So then I had to run the same test again to see.  I ran the USB test first, with the same 111 files:

    real    1m57.584s
    user    1m31.102s
    sys    0m6.368s

And with Firewire:

    real    1m58.318s
    user    1m32.070s
    sys    0m6.996s

I thought it was interesting that there was such a significant difference between Firewire and USB on the MacBook, but not on the Dell.  I have decided I will have to get a Mac and install Linux on it and then compare Apples to Apples, so to speak.