Примите участие в тестировании, plz!
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 21.07.04 00:34
Оценка:
Я тут изучаю влияние выравнивания кода на выполнение циклов,
но т.к. у меня у самого сейчас Athlon64 и довольно странные
результаты, хотелось бы узнать, какие результаты на других AMD
и на Intel.
Если найдутся желающие потратить 5 минут, чтобы мне помочь —
буду счастлив

Комментируйте строчки с nop по одной, сравнивая выводимое
на экран время выполнения.
Теоретически, оно должно в основном колебаться вокруг
двух сильно (раза в 1.25-1.3) отличающихся значений
При каком количестве закомментированных строк происходит
первый переход от значений первого типа к значениям второго?
Продолжайте расставлять комментарии. При каком количестве
происходит обратный переход?

Просьба указывать также тип Вашего процессора.

Program Test;
uses Sysutils,Dialogs;

  function rdtsc:int64; asm rdtsc end;

var Time:int64;
   a,b:array[1..1000] of cardinal;
   r:array[1..1000]of cardinal;
   i:integer;
begin
  for i:=1 to 1000 do a[i]:=2;
  for i:=1 to 1000 do b[i]:=3;

  Time:=RDTSC();

  For i:=1 to 100000 do
      asm
        push edx
        xor ecx,ecx
        mov edx,1000
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
      @Loop:
        mov eax,dword ptr a[ecx]
        imul eax,dword ptr b[ecx]
        mov dword ptr r[ecx],eax
        add ecx,4
        sub edx,1
        jnz @Loop
        nop
        pop edx
      end;

  showmessage(inttostr(RDTSC()-Time));
end.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.