I decided to perform some more thorough testing on the Transcend card using a Linux system. I decided to examine the sequential write performance of the entire card. For this, I started KDE System Monitor and configured it to plot the read and write speeds on the device. I then used dd to write zeros to the entire card, using sequential writes in 4MB blocks. I also repeated the test with 4kB blocks. Given that this type of test bypasses any filesystem fragmentation issues, a Class 6 card must never write slower than 6MB/s - on any part of the media. As you can see from the attached screen shots, the card performed to specification only in certain areas. There are a number of occasions where the write performance is well below the requirement of a Classs 6 device.
Interestingly enough, the areas of poor performance do not appear in exactly the same locations between tests and also do not seem to be of the same size. I have no definitive explanation for this, but I guess it could be due to something like a wear levelling algorithm being applied, or perhaps bad block re-mapping. Then again, it could be some other issue that's more intermittent and the slowdown is a result of multiple retries and error detection and correction algorithms doing their work. I guess the manufacturer will have means of pinpointing the issue more accurately, but it's unlikely that they would report the root cause back to the end users. Still, it would be educational to find out what goes wrong in memory cards.
Transcend offer a Lifetime Warranty on their cards, so I will contact their technical support to request a replacement. I've tried to use their on-line RMA form, but it seems that this is only available to customers in USA. We'll see how well Transcend looks after their Australian customers - I'm about to contact their technical support in Taiwan.
Transcend 32GB Class 6 SDHC write performance - sequential 4MB writes. |
Transcend 32GB Class 6 SDHC write performance - sequential 4kB writes. |