Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.10.19;
Скачать: [xml.tar.bz2];

Вниз

Инструкции сопроцессора. 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
4-1198242400
Dim07
2007-12-21 16:06
2008.10.19
Готовность принтера


2-1220876858
programmer90
2008-09-08 16:27
2008.10.19
как убрать у комбобокса убрать эту штуку справа


2-1221226569
webpauk
2008-09-12 17:36
2008.10.19
PanelResize


2-1221290498
@!!ex
2008-09-13 11:21
2008.10.19
Как добавить пункт меню в контекстное меню Explorer a


15-1220089316
Kostafey
2008-08-30 13:41
2008.10.19
С днем рождения ! 30 августа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский