Форум: "Прочее";
Текущий архив: 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.006 c