128GB MicroSD: exFAT vs. HFS Performance on the MacBook Pro

The new SanDisk 128GB MicroSD card seems to slow down when formatted with the Mac native filesystem.  Here’s one data point.

Out-of-the-box:

Results 22.09
System Info
Xbench Version 1.3
System Version 10.9.2 (13C64)
Physical RAM 16384 MB
Model MacBookPro10,1
Drive Type Apple SDXC Reader
Disk Test 22.09
Sequential 36.23
Uncached Write 145.82 89.53 MB/sec [4K blocks]
Uncached Write 17.35 9.82 MB/sec [256K blocks]
Uncached Read 29.53 8.64 MB/sec [4K blocks]
Uncached Read 82.98 41.71 MB/sec [256K blocks]
Random 15.88
Uncached Write 21.75 2.30 MB/sec [4K blocks]
Uncached Write 5.01 1.60 MB/sec [256K blocks]
Uncached Read 618.02 4.38 MB/sec [4K blocks]
Uncached Read 215.60 40.01 MB/sec [256K blocks]

Formatted with HFS Journaled

Results 14.67
System Info
Xbench Version 1.3
System Version 10.9.2 (13C64)
Physical RAM 16384 MB
Model MacBookPro10,1
Drive Type Apple SDXC Reader
Disk Test 14.67
Sequential 28.30
Uncached Write 48.53 29.80 MB/sec [4K blocks]
Uncached Write 13.56 7.67 MB/sec [256K blocks]
Uncached Read 28.69 8.40 MB/sec [4K blocks]
Uncached Read 82.50 41.46 MB/sec [256K blocks]
Random 9.90
Uncached Write 21.60 2.29 MB/sec [4K blocks]
Uncached Write 2.85 0.91 MB/sec [256K blocks]
Uncached Read 605.30 4.29 MB/sec [4K blocks]
Uncached Read 213.16 39.55 MB/sec [256K blocks]

I’ll stick with exFAT.

6 thoughts on “128GB MicroSD: exFAT vs. HFS Performance on the MacBook Pro

  1. XBench is not disabling caching, as evidenced by the write results; all other applications show that writing 4K blocks is slower than writing 256K blocks. Realistic write speeds for 4K blocks would be closer to 2MB/s or less, and 256K blocks around 30MB/s. Top write speeds for any modern SD card is around 45MB/s. So a 90MB/s write speed at 4K blocks can only mean cache enabled.

    And strangely enough, although I agree that exFAT is slightly faster for a SD card than HFS+J when I run XBench on my 128MB SDXC class 10 card, I get the exact opposite results:

    Freshly formatted exFAT results:

    Disk Test 34.24
    Sequential 56.15
    Uncached Write 95.56 58.67 MB/sec [4K blocks]
    Uncached Write 42.86 24.25 MB/sec [256K blocks]
    Uncached Read 33.39 9.77 MB/sec [4K blocks]
    Uncached Read 133.56 67.12 MB/sec [256K blocks]
    Random 24.63
    Uncached Write 7.96 0.84 MB/sec [4K blocks]
    Uncached Write 30.59 9.79 MB/sec [256K blocks]
    Uncached Read 853.85 6.05 MB/sec [4K blocks]
    Uncached Read 352.80 65.46 MB/sec [256K blocks]

    Freshly formatted HFS+J results:

    Disk Test 39.11
    Sequential 54.15
    Uncached Write 151.84 93.23 MB/sec [4K blocks]
    Uncached Write 35.32 19.98 MB/sec [256K blocks]
    Uncached Read 32.03 9.37 MB/sec [4K blocks]
    Uncached Read 129.02 64.85 MB/sec [256K blocks]
    Random 30.61
    Uncached Write 9.81 1.04 MB/sec [4K blocks]
    Uncached Write 40.88 13.09 MB/sec [256K blocks]
    Uncached Read 743.84 5.27 MB/sec [4K blocks]
    Uncached Read 336.65 62.47 MB/sec [256K blocks]

    Quick Bench gives more consistent results, showing exFAT to be apx 5% faster in all tests.

    Anyway, overall I think you should run your tests with a more up to date disk speed test (I highly recommend diglloydTools for this) as your current results do not provide an accurate basis for what I believe is an otherwise correct statement, that being that exFAT is, somewhat, faster than HFS+J.

    -lane

  2. Follow up with results from testing with digilloydTools using 256K and 1M transfers sizes under exFAT and HFS+J:

    —————– Averages for “exFAT” (2GB/256K, 1 iteration) —————–
    Write rate: 34.6MB/sec
    Read rate: 67.4MB/sec
    —————— Averages for “exFAT” (2GB/1MB, 1 iteration) —————–
    Write rate: 41.9MB/sec
    Read rate: 76.6MB/sec

    ————— Averages for “HFS+J” (2GB/256K, 1 iteration) —————
    Write rate: 28.4MB/sec
    Read rate: 65.0MB/sec
    —————- Averages for “HFS+J” (2GB/1MB, 1 iteration) —————
    Write rate: 38.5MB/sec
    Read rate: 75.8MB/sec

    Results from QuickBench standard tests, no caching, synchronous:

    exFAT
    Size S.Read S.Write R.Read R.Write
    4 KB 10.116 1.323 7.710 0.984
    8 KB 16.845 2.699 13.413 1.970
    16 KB 24.581 5.553 20.935 3.991
    32 KB 33.694 11.227 33.429 7.880
    64 KB 47.964 18.227 47.845 13.693
    128 KB 58.065 24.556 58.338 20.204
    256 KB 67.329 29.973 67.222 26.027
    512 KB 72.982 33.071 73.233 32.195
    1024 KB 75.113 37.309 76.647 22.851

    HFS+J
    Size S.Read S.Write R.Read R.Write
    4 KB 9.603 1.585 9.533 0.318
    8 KB 12.388 2.740 10.409 0.584
    16 KB 19.964 4.902 18.574 1.043
    32 KB 30.339 8.146 30.363 1.812
    64 KB 42.467 14.530 43.380 3.571
    128 KB 54.863 21.426 55.565 4.824
    256 KB 64.995 28.778 65.415 7.016
    512 KB 72.578 35.611 72.059 9.286
    1024 KB 76.073 39.949 76.113 14.098

    Note that while slightly faster, exFAT is also provides slightly more usable space on the disk (119.1GB vs 116.1GB for HFS+J) since it doesn’t have the journaling data taking up space.

    So for removable media, exFAT is definitely a good choice, although HFS+J provides performance close enough that the potential benefit of the journaling safety might be worth consideration in some use cases.

    -lane

  3. Thanks for fleshing this out. One interesting effect of exFAT was that my Console log was filled with “bad path” warnings from mdworker until I excluded the exFAT MicroSD volume from Spotlight. I’m using the volume for an iTunes library while I wean myself from iTunes — it still sounds better than Google Music or Amazon Cloud Player in some cases.

    Anyway, your additional data points cast doubt on whether exFAT is the better choice. Coupled with OS X’s affinity for HFS, maybe I’ll use HFS+J next time, especially if data integrity is a concern. Xbench is nice and free for a quick-and-dirty comparison like you provided, but you’re right, it’s probably time to upgrade! 🙂

  4. I just got a 128GB PNY storEDGE for my MBP and ran the tests on it as well, basically confirming that neither file system appears to have a significant performance advantage. I also tested turning journaling off, but that actually caused a noticeable performance hit.

    One test that I haven’t found a good way to measure is how each file system effects performance when a lot of files are stored on the device.

    -lane

    Results for PNY StorEDGE 1289GB card in 8,2 MBP:

    exFAT

    QuickBench
    S.Read S.Write R.Read R.Write
    4 KB 8.536 0.977 6.674 0.881
    8 KB 15.417 1.966 10.989 1.921
    16 KB 24.324 4.000 20.341 3.897
    32 KB 37.984 8.272 31.292 7.746
    64 KB 51.664 12.447 42.560 14.958
    128 KB 63.278 7.729 55.509 21.409
    256 KB 71.460 29.881 66.635 30.916
    512 KB 75.744 44.609 72.681 19.489
    1024 KB 78.557 48.298 77.158 45.559

    Average 47.440 17.576 42.649 16.308

    Lg Ave 81.515 52.971
    Ext Ave 82.071 57.983

    DiskTester Sequential:

    Write MB/sec Read MB/sec
    49.6 77.9

    DiskTester IOPS:

    Write 256MB in seconds: 163.1
    Read 256MB in seconds: 24.9
    Aggregate write rate MB/sec: 1.6
    Aggregate read rate MB/sec: 10.3

    Write ops/sec: 201
    Read ops/sec: 1315

    HFS+J

    QuickBench
    S.Read S.Write R.Read R.Write
    4 KB 8.610 1.217 8.066 1.010
    8 KB 15.488 2.490 12.813 1.591
    16 KB 25.098 5.054 21.550 3.604
    32 KB 38.979 10.256 32.083 6.716
    64 KB 53.187 19.755 44.300 17.052
    128 KB 63.483 30.526 56.166 26.321
    256 KB 71.079 37.985 66.111 29.015
    512 KB 74.812 50.997 73.809 33.205
    1024 KB 77.937 54.877 76.845 38.264

    Average 47.630 23.684 43.527 17.420

    Lg Ave 81.521 55.299
    Ext Ave 82.938 56.653

    DiskTester Sequential:

    Write MB/sec Read MB/sec
    47.9 76.5

    DiskTester IOPS:

    Write 256MB in seconds: 166.9
    Read 256MB in seconds: 27.4
    Aggregate write rate MB/sec: 1.5
    Aggregate read rate MB/sec: 9.3

    Write ops/sec: 196
    Read ops/sec: 1196

  5. Thanks. Some server test labs in Austin used many sophisticated file generation utilities for Windows, but I doubt the same variety exists for OS X. You could write a shell script with dd to create files. Another option is to pick up one of the Windows utilities like Random File Generator, mount the drive in Windows to create the files, and then return it to the Mac for a test if you are curious.

  6. Hello, I am experiencing really slow write speeds on my MacBook Pro on a MicroSD from Samsung which should allow write speeds of up to 20MB/s. The current transfer rate seems to be around 3-4MB/s on HFS Journaled, and the rate was way lower when I formatted it with exFAT. I see some methods for increasing speeds on other devices like Android mobiles, which involve changing the cache, and also on OSX but only for command line processes? Is there a way to implement this when dragging files over with Finder?

Comment