Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 00:51   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию Включение оптимизации в Delphi

Здравствуйте. Столкнулся с проблемой, что, например код
Код:
IF T[1,1]>T[1,2] THEN
begin
  SMIN:=T[1,2];
  II:=1;
  JJ:=2;
end else begin
  SMIN:=T[1,1];
  II:=1;
  JJ:=1;
end;
Просто выполняет SMIN:=T[1,1]; а 2 других оператора просто игнорирует. Выключил так называемую оптимизацию в свойствах проекта - все стало нормально выполняться. Так теперь хочется узнать что конкретно делает оптимизация и почему так произошло, чтобы потом не наступить на грабли.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 30.05.2010, 01:13   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Если значение II, JJ нигде не используется - компилятор не будет включать их в проект вообще.
пыщь
JTG вне форума Ответить с цитированием
Старый 30.05.2010, 01:22   #3
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Только в этом IF. Понятно, то есть если что есть только в ифах игнорируется?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 30.05.2010, 01:27   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

причем здесь только IF?
и в простом коде также будет, причем еще и пишет что значение присвоенное переменной нигде не используется.

сколько не встречался с гоном на оптимизатор, в своей Д6 все отлично было(я проверяю если надо на уровне асма)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2010, 01:30   #5
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Но можно ли где то подробно почитать об особенностях функции оптимизации кода в Delphi? Полезно же знать ситуации в которых может не сработать код.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 30.05.2010, 01:32   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

warning не просто так пишется
а так разве в гугле...ибо всетаки оптимизатор мог меняться от версии к версии.

хотя начитаетесь отзывов...особенно про обратное течение индекса цикла for(особенно с массивами, или когда индекс не используется)...все считают что ошибка...а ведь мало кто знает что все верно да еще и быстрее(там на уровне асма работа с указателем на элемент массива...вот и вся хитрость, а обратное течение(асм dec) позволяет использовать условный прыжок на ноль, без дополнительных проверочных команд)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 30.05.2010 в 01:38.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2010, 02:00   #7
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Спасибо. Будем разбираться)
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 30.05.2010, 09:08   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну например еще хитрость, в старых версиях Дельфи в параметрах функций лучше использовать строки с модификатором const, везде где только можно. Работа с таким параметром примерно на 12 процентов быстрей.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Включение\отключение каналов SanekIrk Мультимедиа в Delphi 1 19.10.2009 17:10
Включение explorer'a с помощью Delphi 2009 bebecap Win Api 6 10.10.2009 20:07
Включение explorer'a с помощью Delphi 2009 bebecap Общие вопросы Delphi 4 11.09.2009 21:37
Нестандартное включение ПК Bat{CMD}_Men Операционные системы общие вопросы 1 24.08.2009 17:04
Включение-выключение компьютера с помощью Delphi BLACK_KOT Помощь студентам 6 01.05.2007 09:55