I timed it 10 seconds before the free space was displayed.
I added timing to the SdFat SdInfo sketch and tried several cards. Here is the SdInfo code:
uint32_t m = millis();
uint32_t volFree = vol.freeClusterCount();
m = millis() - m;
cout << pstr("millis: ") << m << endl;
cout << pstr("freeClusters: ") << volFree << endl;
float fs = 0.000512*volFree*vol.blocksPerCluster();
cout << pstr("freeSpace: ") << fs << pstr(" MB (MB = 1,000,000 bytes)\n");
Here are results with SdInfo's 4 MHz SPI clock:
1.9 seconds for a 4 GB SanDisk class 4 card.
millis: 1900
freeClusters: 97017
freeSpace: 3179.05 MB (MB = 1,000,000 bytes)
0.487 seconds for a 2 GB SanDisk class 2 card.
millis: 487
freeClusters: 59359
freeSpace: 1945.08 MB (MB = 1,000,000 bytes)
0.438 seconds for a 2 GB Dane-Elec Card.
millis: 438
freeClusters: 61357
freeSpace: 2010.55 MB (MB = 1,000,000 bytes)
I ran the test again with a 8 MHz SPI clock.
0.362 seconds for the 2 GB SanDisk card.
millis: 362
freeClusters: 59359
freeSpace: 1945.08 MB (MB = 1,000,000 bytes)
1.403 seconds for the 4 GB SanDisk card.
millis: 1403
freeClusters: 97017
freeSpace: 3179.05 MB (MB = 1,000,000 bytes)
These tests show an interesting fact. Access to FAT16 on the 2 GB cards is faster since the FAT entry size is 16-bits. 4 GB and larger cards have 32-bit FAT entries so twice as much I/O is required. That's why the 4 GB card takes about four times as long as the 2 GB cards.
Often people make the mistake of formatting small card FAT32 and ruin performance.
So always use SD formatter SD Memory Card Formatter for Windows/Mac | SD Association. It will always produce the best results.
NEVER use OS utilities with your idea of what is best for SD card performance.
Here is the 2 GB Dane-Elec card formatted FAT32 with 1 KB clusters on Windows. The SPI speed is 8 MHz.
18.228 seconds.
millis: 18228
freeClusters: 1949567
freeSpace: 1996.36 MB (MB = 1,000,000 bytes)
fatStartBlock: 2559