Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.6 MB
Время: 0.045 c