Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.047 c
15-1185117642
Kostafey
2007-07-22 19:20
2007.08.19
Чтобы клавитуру не ломать...


4-1173091631
Углук
2007-03-05 13:47
2007.08.19
Странность с вызовом функции из DLL


2-1185264826
Kolan
2007-07-24 12:13
2007.08.19
Как правильно создать TDataBase динамически?


3-1177314557
Сергей М.
2007-04-23 11:49
2007.08.19
Интерфейс объекта VisualFoxPro.Application в составе vfpXr.dll


2-1185355218
vegarulez
2007-07-25 13:20
2007.08.19
Как обновить TButton внутри TPanel`a?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский