Как подсчитать среднее время доступа к информации на жестком диске по записи?
Вроде бы оно равняется задержке между получением команды и моментом считывания первого бита данных.
Буду рада любым разъяснениям, ссылкам.
var
handle : thandle; // хэндл устройства
// ...
function GetSeekTime(SeekSize : extended) : extended; // вычисление времени поиска
var
e0,e1 : extended; // измерение времени
buf : array[0..1023]of byte; // буфер чтения
SecSize : dword; // количество секторов
i : longint;
j,n : dword;
point1,point2 : array[0..1]of dword; // позиция в файле
begin
e0 := GetTimer_Q;
SecSize := trunc(SeekSize/512);
for i := 0 to NumSeek-1 do begin
n := random(SecSize);
point1[0] := n shl 9;
point1[1] := n shr 23;
point2 := point1;
point1[0] := SetFilePointer (handle, point1[0], @point1[1], FILE_BEGIN);
if (point1[0] <> point2[0]) or (point1[1] <> point2[1]) then deb2file('Seek ERROR! ',trunc(SeekSize/1024/1024));
ReadFile(handle, buf, 512, j, nil);
if j <> 512 then deb2file('Read ERROR! ',trunc(SeekSize/1024/1024));
end;
e1 := GetTimer_Q;
GetSeekTime := (e1-e0)/NumSeek;
end;