Форум: "Прочее";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизКомпилятор Опять грешит Найти похожие ветки
← →
oxffff © (2007-07-20 11:15) [0]Простой код
procedure abc(out a:string);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:string;
begin
abc(a);
end;
Работа
1.Перед вызовом abc компилятор добавляет полноценную очистку out параметра.
2.Далее в abc он еще добавляет обнуление параметра.
Таким образом эти инструкции лишние.
Поскольку входной параметр финализирон вызывающей процедурой и уже обнулен на входе .
И это для всех финализируемых типов.
А если мы сделает вот так,
AAA=array[0..100] of string;
procedure abc(out a:AAA);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:AAA;
begin
abc(a);
end;
Это уже более существенные потери
← →
oxffff © (2007-07-20 11:17) [1]
>
> Таким образом эти инструкции лишние.
Обнуление в вызванной процедуре.
← →
oxffff © (2007-07-20 12:22) [2]Написал им
http://qc.codegear.com/wc/qcmain.aspx?d=49334
← →
oxffff © (2007-07-20 21:52) [3]Поставили статус Open. Так что будем ждать оптимизации
← →
Суслик © (2007-07-20 23:28) [4]небось пьер ле риш открыл...
там это уже было год назад где-то.
по поводу out параметров штук 50 репортов.
← →
Суслик © (2007-07-20 23:30) [5]2автар
кинь свои контакты на timokhov@gmail.com
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c