![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#21 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]() Цитата:
Компилятору до лампочки. Это как имена функций или переменных. |
|
![]() |
![]() |
![]() |
#22 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> Дизассемблер подтверждает.
хм, а у меня как раз подтвержадет обратное: Код:
Код:
Код:
Код:
> почитать документацию по этому поводу киньте ссылку, почитаю с удовольствием.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#23 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
как раз таки case Делфи лучше оптимизирует.
хотя про большие кейсы не знаю, если кейс большой и довольно непрерывен, тот тут лучше, ИМХО, это таблица переходов. для строк довольно удобно применять TStringList. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#24 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Видимо отладчик отладчику рознь, View CPU у меня тоже самое показывает в режиме отладки. А IDA это:
Принцип (схема реализации) ведь один. А то что мнемоники разные, это уже вопрос реализации. Про оптимизатор конкретно ничего не скажу - что-то лучше, что-то хуже, дядькам Борланда виднее ![]() |
![]() |
![]() |
![]() |
#25 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> в режиме отладки. А IDA это
в отладчике (ViewCPU) версия без особой оптимизации, а в IDA версия с полной оптимизацией. Код в IDА у вас практически похож потому, что A нигде потом не используется. Вот оптимизатор и выкинул половину else и половину case. Если А используется, разница более заметна: Код:
Код:
как уже говорили выше, реализовать case можно более оптимально через таблицу переходов (хотя пока компилятор от борланд этого и не делает). Да и без таблицы код большого кейса будет выполнятся быстрее, чем аналогичный набор if ... else, видно по кускам выше. > это уже вопрос реализации вот и пришли к тому, что реализация у case и набора if..else различается. Это и понятно, ведь if..else универсальная штука, а case заточен строго на перечислимые типы.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |