Neil, it depends on the technical details. Flash chips can only be read by pages (typical page size is 2048 or 4096 bytes), i.e. if you want to read a byte of some pages you have to wait for the whole page to be transferred. And if the filesystem cluster size is less than the page size, fragmentation could affect the reading performance.
For example let's imagine that the cluster size is 512 bytes and the page size is 2048 bytes.
Then the reading speed of an extremely fragmented file (i.e. each cluster of it belongs to a separate page) would be 2048/512=4 times slower than the reading speed of a totally defragmented file.
The writing speed is even more dependent on the fragmentation, as flash pages have to be erased before being rewritten, and only the whole block (typically a block is 32-128 pages) can be erased. That's why in the worst case we would have to rewrite 128*4096 bytes of flash in order to write 512 bytes. That would be a disaster.
Maybe this device is so slow because it's writing some file too slowly, who knows?
So without precise knowledge about the page size of the flash chip and the filesystem used I wouldn't be that sure.
Bookmarks