I wrote up a quick SD benchmark utility for the homebrew launcher.
Before use:
Run the createFiles.bat file in the sdtest/data folder.
This will create the 1.2GB of test files. Run it from the SD card.
Sorry I assume it's windows only.
The batch file should create the files the quickest if ran on the SD card.
Download the sdtest_full.zip if you cannot get the bat file in the sdtest.zip file to work.
Unzip to hard drive the copy to SD.
Code
Releases
It tests random reads of 1k, 10k, 100k & 1M files.
It also does a test to see what happens if a program such as loadiine put all files in 1 larger uncompressed file. This would save on multiple file open/close and other SD slowdowns. These tests do not reflect the overhead of looking of the files in a table to know where they reside in the large file, but I do not think the overhead would slow things down greatly.
1k in 1M tests the speed of accessing 1000 random 1k blocks in a 1M file.
10k in 10M tests the speed of accessing 1000 random 10k blocks in a 10M file.
etc,
1k in 10M tests the speed of accessing 10000 random 1k blocks in a 10M file.
A testdata.txt result file is saved in the sdtest folder
Here are some benchmarks on my cards.
I believe they show that you just need to buy a quality card. Class 10 is not any faster then Class 4. The Patriot Class 10 is actually a lot slower. I will never buy Patriot again. The main reason for a class 10 is the speed to transfer files for a PC to the card.
There also seems to be little benefit from using 64k clusters, as compared to a 3DS where it is noticeably quicker.
Samsung EVO+ 64G Class 10 U1 I, 32k clusters
SanDisk Ultra 128G Class 10 U1 I, 32k clusters
SanDisk Ultra 128G Class 10 U1 I, 64k clusters
SanDisk Ultra 200G (full), 32k clusters
Toshiba 4G Class 4 (from 3DS), 4k clusters
Patriot 128GB Class 10 U1 I, 32k clusters
Very disappointing for a U1 card. Loading times are extremely noticeably slower.
Before use:
Run the createFiles.bat file in the sdtest/data folder.
This will create the 1.2GB of test files. Run it from the SD card.
Sorry I assume it's windows only.
The batch file should create the files the quickest if ran on the SD card.
Download the sdtest_full.zip if you cannot get the bat file in the sdtest.zip file to work.
Unzip to hard drive the copy to SD.
Code
Releases
It tests random reads of 1k, 10k, 100k & 1M files.
It also does a test to see what happens if a program such as loadiine put all files in 1 larger uncompressed file. This would save on multiple file open/close and other SD slowdowns. These tests do not reflect the overhead of looking of the files in a table to know where they reside in the large file, but I do not think the overhead would slow things down greatly.
1k in 1M tests the speed of accessing 1000 random 1k blocks in a 1M file.
10k in 10M tests the speed of accessing 1000 random 10k blocks in a 10M file.
etc,
1k in 10M tests the speed of accessing 10000 random 1k blocks in a 10M file.
A testdata.txt result file is saved in the sdtest folder
Here are some benchmarks on my cards.
I believe they show that you just need to buy a quality card. Class 10 is not any faster then Class 4. The Patriot Class 10 is actually a lot slower. I will never buy Patriot again. The main reason for a class 10 is the speed to transfer files for a PC to the card.
There also seems to be little benefit from using 64k clusters, as compared to a 3DS where it is noticeably quicker.
Samsung EVO+ 64G Class 10 U1 I, 32k clusters
1k byte = 3.14 s, 0.32 MBps
10k byte = 4.38 s, 2.28 MBps
100k byte = 15.86 s, 6.31 MBps
1M byte = 118.66 s, 8.43 MBps
1k byte in 1M = 1.63 s, 0.61 MBps
10k byte in 10M = 2.28 s, 4.39 MBps
100k byte in 100M = 16.98 s, 5.89 MBps
1M byte in 1G = 150.81 s, 6.63 MBps
1k byte in 10M = 21.85 s, 0.46 MBps
10k byte = 4.38 s, 2.28 MBps
100k byte = 15.86 s, 6.31 MBps
1M byte = 118.66 s, 8.43 MBps
1k byte in 1M = 1.63 s, 0.61 MBps
10k byte in 10M = 2.28 s, 4.39 MBps
100k byte in 100M = 16.98 s, 5.89 MBps
1M byte in 1G = 150.81 s, 6.63 MBps
1k byte in 10M = 21.85 s, 0.46 MBps
SanDisk Ultra 128G Class 10 U1 I, 32k clusters
1k byte = 2.88 s, 0.35 MBps
10k byte = 3.95 s, 2.53 MBps
100k byte = 14.13 s, 7.08 MBps
1M byte = 107.40 s, 9.31 MBps
1k byte in 1M = 1.58 s, 0.63 MBps
10k byte in 10M = 2.26 s, 4.42 MBps
100k byte in 100M = 16.95 s, 5.90 MBps
1M byte in 1G = 149.93 s, 6.67 MBps
1k byte in 10M = 22.74 s, 0.44 MBps
10k byte = 3.95 s, 2.53 MBps
100k byte = 14.13 s, 7.08 MBps
1M byte = 107.40 s, 9.31 MBps
1k byte in 1M = 1.58 s, 0.63 MBps
10k byte in 10M = 2.26 s, 4.42 MBps
100k byte in 100M = 16.95 s, 5.90 MBps
1M byte in 1G = 149.93 s, 6.67 MBps
1k byte in 10M = 22.74 s, 0.44 MBps
SanDisk Ultra 128G Class 10 U1 I, 64k clusters
1k byte = 2.92 s, 0.34 MBps
10k byte = 3.96 s, 2.53 MBps
100k byte = 14.10 s, 7.09 MBps
1M byte = 107.04 s, 9.34 MBps
1k byte in 1M = 1.50 s, 0.67 MBps
10k byte in 10M = 2.45 s, 4.08 MBps
100k byte in 100M = 16.66 s, 6.00 MBps
1M byte in 1G = 147.60 s, 6.78 MBps
1k byte in 10M = 26.20 s, 0.38 MBps
10k byte = 3.96 s, 2.53 MBps
100k byte = 14.10 s, 7.09 MBps
1M byte = 107.04 s, 9.34 MBps
1k byte in 1M = 1.50 s, 0.67 MBps
10k byte in 10M = 2.45 s, 4.08 MBps
100k byte in 100M = 16.66 s, 6.00 MBps
1M byte in 1G = 147.60 s, 6.78 MBps
1k byte in 10M = 26.20 s, 0.38 MBps
SanDisk Ultra 200G (full), 32k clusters
1k byte = 2.96 s, 0.34 MBps
10k byte = 4.01 s, 2.49 MBps
100k byte = 14.62 s, 6.84 MBps
1M byte = 111.19 s, 8.99 MBps
1k byte in 1M = 1.55 s, 0.65 MBps
10k byte in 10M = 2.27 s, 4.41 MBps
100k byte in 100M = 17.45 s, 5.73 MBps
1M byte in 1G = 155.33 s, 6.44 MBps
1k byte in 10M = 23.80 s, 0.42 MBps
10k byte = 4.01 s, 2.49 MBps
100k byte = 14.62 s, 6.84 MBps
1M byte = 111.19 s, 8.99 MBps
1k byte in 1M = 1.55 s, 0.65 MBps
10k byte in 10M = 2.27 s, 4.41 MBps
100k byte in 100M = 17.45 s, 5.73 MBps
1M byte in 1G = 155.33 s, 6.44 MBps
1k byte in 10M = 23.80 s, 0.42 MBps
Toshiba 4G Class 4 (from 3DS), 4k clusters
1k byte = 2.84 s, 0.35 MBps
10k byte = 3.88 s, 2.58 MBps
100k byte = 13.91 s, 7.19 MBps
1M byte = 104.25 s, 9.59 MBps
1k byte in 1M = 1.48 s, 0.68 MBps
10k byte in 10M = 2.14 s, 4.67 MBps
100k byte in 100M = 16.50 s, 6.06 MBps
1M byte in 1G = 149.52 s, 6.69 MBps
1k byte in 10M = 21.03 s, 0.48 MBps
10k byte = 3.88 s, 2.58 MBps
100k byte = 13.91 s, 7.19 MBps
1M byte = 104.25 s, 9.59 MBps
1k byte in 1M = 1.48 s, 0.68 MBps
10k byte in 10M = 2.14 s, 4.67 MBps
100k byte in 100M = 16.50 s, 6.06 MBps
1M byte in 1G = 149.52 s, 6.69 MBps
1k byte in 10M = 21.03 s, 0.48 MBps
Patriot 128GB Class 10 U1 I, 32k clusters
Very disappointing for a U1 card. Loading times are extremely noticeably slower.
1k byte = 3.85 s, 0.26 MBps
10k byte = 4.85 s, 2.06 MBps
100k byte = 17.31 s, 5.78 MBps
1M byte = 135.15 s, 7.40 MBps
1k byte in 1M = 2.08 s, 0.48 MBps
10k byte in 10M = 2.87 s, 3.48 MBps
100k byte in 100M = 21.67 s, 4.61 MBps
1M byte in 1G = 192.42 s, 5.20 MBps
1k byte in 10M = 30.49 s, 0.33 MBps
10k byte = 4.85 s, 2.06 MBps
100k byte = 17.31 s, 5.78 MBps
1M byte = 135.15 s, 7.40 MBps
1k byte in 1M = 2.08 s, 0.48 MBps
10k byte in 10M = 2.87 s, 3.48 MBps
100k byte in 100M = 21.67 s, 4.61 MBps
1M byte in 1G = 192.42 s, 5.20 MBps
1k byte in 10M = 30.49 s, 0.33 MBps
Attachments
Last edited by Ape8000,
, Reason: uploaded v0.2 - fixed timers