# HD_Speed

Copyright 2000-2007 Steel Bytes

## FAQ

Q. what is the block size
A. it's the size of the chunks that HD_Speed requests data from windows

Q. why does this affect the throughput
A. it theoretically shouldn't affect it greatly, (as long as you dont select too small a setting that cpu usage and other such inefficiencies come in to play). but on some systems it does. so why ? my guess is that something in the chain between HD_Speed and the physical drive is not as well written as it should be :-)

Q. what is the chain through which the data flows to reach hd_speed
A. simplified: drive platters -> driver controller (including it's own cache) -> ide/scsi/sata connection -> host controller (for ide&sata, usually part of the motherboard chipset) -> drivers for hdd controller -> hd_speed

Q. can I set the block size that windows uses.
A. not that I know of (not with out writing you own drivers for the HDD controller).

Q. burst rate vs non burst rate ...
A. burst rate repeatedly reads (or writes) the the same section of the disk. since most modern drives cache the read, this really amounts to a test of the speed of the drive's controller. non burst sequentially reads the disk, and is a better test of the drive performance.

Q. what method does HD_Speed use to read/write
A. the following Win32 API calls: CreateFile(devicename,...), ReadFile() and WriteFile(). See Microsoft's PlatformSDK for more info.

Q. can I see/have the sourcecode
A. no

Q. what relevance is the offset setting ?
A. the transfer speed of most disk types varies at different points. eg, harddrives are usually fastest at the start, and slower further on. CD-Roms are typically the opposite

Q. is the write test destructive?
A. yes.

## Command Line

/r | read test
/w | write test
/d drive | drive to test
/t time | duration in seconds
/x | exit after test
/l file | file to output result

eg.
start /wait hd_speed /r /t 5 /d c: /x