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

Вниз

const в параметрах   Найти похожие ветки 

 
Игорь Шевченко ©   (2008-03-02 23:11) [80]

Вопрос был про Integer, а флейм развели на 4 страницы


 
Loginov Dmitry ©   (2008-03-02 23:13) [81]

> Код включает Addref + try  finally finalize(LStrClr)


Это уже действительно убедительно, и мне к сожалению, нужно признать, что я не прав. Не думал, что компилятор будет вставлять try...finally, даже если процедура пустая. Я бряку ставил на END, и в ассемблерном коде просто не заметил ничего, кроме pop ebp и ret.
А твой тест с ShowMessage по преждему так и есть - некорректный. Он показывает, что быстрее (без оптимизации у меня - в 13 раз) выполняется второй цикл (не важно, какой именно). И это несмотря на наличие дополнительных 2х десятков машинных команд, связанных с реализацией try..finally.

Под фразой

> Именно в примере [2] оптимизации от этого никакой нет, т.к.
> нет обращения к отдельным символам строки. В других же случаях наличие
> Const может заметно улучшить производительность приложения по сравнению с его отсутствием.

я имею ввиду, что при отсутствии Const в процедуре будут присутствовать дополнительные машинные команды. Но без задержек на UniqueString их влияние на производительность программы настолько ничтожно, что на написание дополнительного слова Const в некоторых случаях можно смело забить. В таких случаях оптимизация, достигнутая с использованием Const, не ощущается.


 
Anatoly Podgoretsky ©   (2008-03-03 02:02) [82]

Const это не производительность, а защита


 
Германн ©   (2008-03-03 02:30) [83]


> Anatoly Podgoretsky ©   (03.03.08 02:02) [82]
>
> Const это не производительность, а защита
>

Угу. Это защита от дурака. Или от умного в неадекватном состоянии.
Что увеличивает умному широту маневра, в т.ч. и с точки зрения повышения производительности. Но и ИШ в
> Игорь Шевченко ©   (02.03.08 23:11) [80]
полностью прав.


 
Riply ©   (2008-03-03 03:03) [84]

> [80] Игорь Шевченко ©   (02.03.08 23:11)
> Вопрос был про Integer, а флейм развели на 4 страницы

Не все всё знают.
Мне, например, было интересно (надеюсь и полезно) почитать эту ветку :)


 
Германн ©   (2008-03-03 03:23) [85]


> Riply ©   (03.03.08 03:03) [84]
>
> > [80] Игорь Шевченко ©   (02.03.08 23:11)
> > Вопрос был про Integer, а флейм развели на 4 страницы
>
> Не все всё знают.
> Мне, например, было интересно (надеюсь и полезно) почитать
> эту ветку :)
>

Ну хоть тебе это пошло в плюс. Уже хорошо. Меньше будет попыток "ненаучного тыка" в очевидных случаях".


 
oxffff ©   (2008-03-03 08:40) [86]


> Loginov Dmitry ©   (02.03.08 23:13) [81]
> > Код включает Addref + try  finally finalize(LStrClr)
>
>
> Это уже действительно убедительно, и мне к сожалению, нужно
> признать, что я не прав. Не думал, что компилятор будет
> вставлять try...finally, даже если процедура пустая. Я бряку
> ставил на END, и в ассемблерном коде просто не заметил ничего,
>  кроме pop ebp и ret.
> А твой тест с ShowMessage по преждему так и есть - некорректный.
>  Он показывает, что быстрее (без оптимизации у меня - в
> 13 раз) выполняется второй цикл (не важно, какой именно).
>  И это несмотря на наличие дополнительных 2х десятков машинных
> команд, связанных с реализацией try..finally.


отключи оптимизацию.
И делай rebuild.  
И тест будет показывать разницу в виде задержек именно на Addref/finalize+try finally.


 
oxffff ©   (2008-03-03 08:47) [87]


> Германн ©   (03.03.08 03:23) [85]
>
> > Riply ©   (03.03.08 03:03) [84]
> >
> > > [80] Игорь Шевченко ©   (02.03.08 23:11)
> > > Вопрос был про Integer, а флейм развели на 4 страницы
> >
> > Не все всё знают.
> > Мне, например, было интересно (надеюсь и полезно) почитать
>
> > эту ветку :)
> >
>

> Ну хоть тебе это пошло в плюс. Уже хорошо. Меньше будет
> попыток "ненаучного тыка" в очевидных случаях".


см. oxffff ©   (02.03.08 16:10) [15].

Очевидный случай?



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

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

Наверх




Память: 0.62 MB
Время: 0.038 c
2-1204281119
q1485
2008-02-29 13:31
2008.03.30
Запрос в потоке


2-1204533659
Chorniy
2008-03-03 11:40
2008.03.30
Запустить процедуру в чужом процессе


2-1204209428
максим
2008-02-28 17:37
2008.03.30
hex


2-1204619691
simon26
2008-03-04 11:34
2008.03.30
Не получается удалять содержимое таблицы


2-1204182102
AlexeyMir
2008-02-28 10:01
2008.03.30
ImageList1 в TreeView