by Alex » Wed Feb 10, 2010 9:22 pm
The mentioned buffer of 512 KB is the direct DMA memory. Hard disks allow reading a multitude of sectors at once, but usually only up to 256 sectors. Since One sector is 512 byte in size, this means that one read or write command will only use up to 128KB. Since HDClone though can will do overlapping read and writes (one part is written while the next is already read), more than 128 KB are used. Since the data gets immediately written to the disc after reading, not more than the 512K are ever needed.
If one copies from one part of one disc to another part on the same disk though, the hard disk would have to reposition the head after each read and before each write, this is why HDClone uses at this point a buffer of 4MB in size, so the programm will do a read for 4MB and then a write for 4MB, with no head repositioning in the time between.
The problem with the very slow data rate is usually with faulty disks (or at least the driver thinks the disk is faulty) and therefore retries to read certain sectors, which has drastic impact on the speed.
Another problem is that the speed shown is averaged over the entire run, so if you started with 100MB/s in the first minute and then there's no progress anymore, after two minutes HDClone will still show 50MB/s, after 4 minutes it will show 25MB/s, and so on. We will change the speed indicator to a better version which shows the speed of say the last few seconds, which will deliver much more realistic transfer speeds. Only at the end the averaged speed is again of importance.