So I took it upon myself to answer the question of “what are the best and cheapest microSD cards out there?” This includes evaluating whether they’re fake flash, how well they perform, and how many read/write cycles they can endure before they start failing. So far I’ve tested four to the point of failure, I have 37 being tested right now, and I have 21 more waiting to be tested.
Sorry for the horrendous cable management — I have cable ties on order.
If the data being written is random how do you know what was written? Is it a known pattern? Something calculated given its address space?
For perf randread/write test, why was 4KB chosen?
For endurance do you have access to any hardware metrics to compare the running test? The drives should be self reporting endurance, each vendor may vary slightly in how they express it
Essentially, yes. I use the random()/srandom() calls in the C library, which generates random numbers in a deterministic fashion using a given seed as the starting point. I generate unique seeds for each segment and each pass. When reading back a particular segment, I just set the seed back to the same value that I used when I originally wrote the data.
Because that’s what’s dictated by the SD card specification.
Nope. SD cards don’t have SMART data like hard drives/SSDs do. I can’t find anything in the SD spec that tells you how to figure out how long the card has been operating or how much data has been written to it.
Thanks for these thorough responses 😃.