views:

259

answers:

3

There is a program called TeraCopy. It's very nice in the way it speeds up file copying. I need to speed up file transfers to a flash disk, but cannot expect everyone to purchase TeraCopy. Does anyone know of any routines or components that can do the same thing?

A: 

Your are limited by the speed of the condiut that you are using to connect to the flash device. If it is USB 2.0 then your fastest speed is going to be 480 Mbit/s theoretically. Of course you are going to get much slower results because we don't live in a labarotory :D.

If you really want to speed up copying use some of your CPU power to compress the information before it is transfered onto the medium. You can then uncompress it once it arrives. You'd have to write a program that does this, or you could use an off the shelf solution.

Al Katawazi
Where did you get the "300mb"? And what is "mb"? USB 2 has theoretical 480 Mbit/s which comes down to around 33 MiB/s real-world performance (which is sluggish by today's HDD standards). But please get your units right here, currently it's confusing.
Joey
+1  A: 

Try designing a file-copy routine divides file-copy operation into N pieces and processes those N pieces parallely using multi-threading. This is how download accelerators and tools like TeraCopy work I guess. Go ahead, try it, gonna be a nice adventure. I remember watching a demo on pftp (parallel file transport protocol) basically FTP made to do the tasks parallely using multi-threading. It does improve the performance significantly, so it might improve on USB drives or any kind of media too.

Abhishek Mishra
A: 

In my personal experience, the simplest and also most effective solution is to get a fast card reader for the flash disk (assuming it is a card?). I have seen differences like day and night between various models. I would also look at whether you have a few large files or rather many small ones. If the latter is the case, you might be able to increase throughput by parallelization or caching multiple files from your local harddisk to RAM before copying (thus eliminating the delay caused by seeking). If you have only a few large files, I have found parallelization to have a negative effect on throughput depending on controller/card reader.

You could also try to change the filesystem and/or at least the block size of the filesytem on the flash drive to match the internal block size.

jmiserez