Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.19;
Скачать: CL | DM;

Вниз

Инструкции сопроцессора. FWAIT Ожидание. Тест(мой)   Найти похожие ветки 

 
Vlad Oshin ©   (2008-08-28 17:52) [0]


procedure TForm1.Button1Click(Sender: TObject);
var
 f,eps:Extended;
 i,j,strt,nd, N,N2:Cardinal;

 //как объявлена в unit System;
function Sqrt1(const X: Extended): Extended;
asm
  FLD     X
  FSQRT
  FWAIT
end;

 //Выдрал  FWAIT
function Sqrt2(const X: Extended): Extended;
asm
  FLD     X
  FSQRT
end;

begin
  f:=25;
  eps:=0.00000001;
  N:=429496700;
  N2:=3;

  strt:=gettickcount;
  for j:=1  to N2 do
   for I := 1 to N do
   begin
    if (Sqrt2(f)-5)>eps then memo1.Lines.Add("2");
   end;
  nd:=gettickcount;
  memo1.Lines.Add("Sqrt2="+inttostr(nd-strt));

  strt:=gettickcount;
  for j:=1  to N2 do
   for I := 1 to N do
   begin
    if (Sqrt1(f)-5)>eps then memo1.Lines.Add("1");
   end;
  nd:=gettickcount;
  memo1.Lines.Add("Sqrt1="+inttostr(nd-strt));
end;

пробовал по-разному.
Функции местами менял(типа, кэш может какой)
Колво прогонов
Без сравнения пробовал
Вкл/выкл оптимизацию

никакой разницы (даже иногда с Wait быстрее, пол-процента)
почему?


 
Renegat ©   (2008-08-28 18:01) [1]

FWAIT нужен исключительно в целях совместимости со старыми процами.
Он просто обеспечивает синхронизацию CPU и FPU.


 
oldman ©   (2008-08-28 18:03) [2]


> Vlad Oshin ©   (28.08.08 17:52)  


Влад, че с тобой последний год творится?


 
Renegat ©   (2008-08-28 18:10) [3]

> [1] Renegat ©   (28.08.08 18:01)

ЗЫ. А в современных ЦП такая синхронизация автоматизирована: выполняй-не выполняй WAIT, разницы не будет.
Возможно, полпроцента образуются от лучшей забивки в кэш (скажем, случайного выравнивания на 4байтную границу. проверять предположение лень).
Или просто из-за погрешности измерений.


 
Anatoly Podgoretsky ©   (2008-08-28 19:21) [4]

> oldman  (28.08.2008 18:03:02)  [2]

Может это не он.


 
Vlad Oshin ©   (2008-08-29 09:13) [5]


> FWAIT нужен исключительно в целях совместимости со старыми
> процами.
> Он просто обеспечивает синхронизацию CPU и FPU

вот я это и прочитал и решил проверить, насколько она замедляет
инструкция же есть!,
хотя бы распознать, что ничего не надо делать, время же нужно, наверное


> Может это не он

ага, Николя Бурбаки я :)


 
Alex Konshin ©   (2008-08-29 11:01) [6]

Там конвейер (и не один). Потому время на распознавание обычно не влияет на время выполнения.



Страницы: 1 вся ветка

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1221035629
programmer90
2008-09-10 12:33
2008.10.19
Проблемы с кодировкой.


3-1208256118
webpauk
2008-04-15 14:41
2008.10.19
Добавление в таблицу


2-1220969154
programmer90
2008-09-09 18:05
2008.10.19
Поиск...


2-1221112968
Костик
2008-09-11 10:02
2008.10.19
Помогите подскажите


2-1221476875
Int23
2008-09-15 15:07
2008.10.19
Как получить компонент над котором движется мышь