Zegar czasu rzeczywistego w FP

0

Witam serdecznie. Napisałem program w którym zaimplementowałem algorytm QuickSort. Potrzebuję wiedzieć ile się on wykonuje dla różnej ilości elementów tablicy. Wykorzystałem adres do zegara czasu rzeczywistego ($0040:$006C) który działa w TP, ale nie działa w FP... (albo nie umiem go tam zaimplementować). A potrzebuję FP dlatego że rozmiar tablicy jest większy niż 64k (TP takich tablic nie obsługuje). Jakieś sugestie? Poniżej kod programu:

program QSort;
uses Crt, Dos;
const
  MAX = 100000;
type
  tab = array[1..Max] of longint;
var
  t: tab;
  i: longint;
  c: char;
  tt: Longint absolute $0040:$006C;
  tb, te:Longint;
procedure QuickSort(var A: tab; Lo, Hi: longint);
procedure Sort(l, r: longint);
var
  i, j, x, y: longint;
begin
  i := l; j := r; x := a[(l+r) DIV 2];
  repeat
    while a[i] < x do i := i + 1;
    while x < a[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;
begin
  Sort(Lo,Hi);
end;
begin
  clrscr;
  Write('Wypelnianie tablicy przypadkowymi wartosciami.');
  Randomize;
  for i := 1 to Max do t[i] := Random(100000);
  Writeln;
  Writeln('Zrobione. Nacisnij ENTER aby posortowac wartosci.');
  Readln;
    tb := tt;
  QuickSort(t, 1, Max);
  te := tt;
 writeln ('Procedura wykonywała się ',(te-tb)/100:0:2,' s');
  Writeln('Posortowane.');
  Writeln('Jezeli chcesz wypisac posortowane dane to wcisnij "c" i enter, w przeciwnym razie wcisnij ENTER.');
  Readln(c);
  if c='c' then
  for i := 1 to max do Writeln(t[i], ' ') else;
  readln;
end.
0

Bo pewnie program jest kompilowany do PE (czyli windows 32).

po dolaczeni windowsowych funkcji QueryPerformanceCounter i przyjaciele (mozna tez tiki procesora lapac asm)

1 użytkowników online, w tym zalogowanych: 0, gości: 1