страничка tripsin'а
Главная |
Статьи |
Заметки |
Файлы|
Ссылки |
я
Микрозаметка про оптимизацию
Довольно часто в программе приходится определять вхождение переменной в
определенный интервал. Например определять, не вышел ли индекс за границы
массива. То есть тут происходит проверка двух условий. Её можно сделать двумя
способами:
1) if (x > min) and (x < max) then Условие выполнено;
2) if x > min then
if x < max then Условие выполнено;
Я заинтересовался, какой из этих вариантов будет расходовать меньше машинных
команд, и сделал небольшой тест для Delphi 7:
Можешь и сам попробовать. Ставь точку останова на начало кода и запускай тест.
Когда breakpoint сработает, жми Alt-Ctrl-C и увидишь окно дизассемблера:
Оказывается для обоих вариантов теста генерируется абсолютно одинаковый машинный
код. То есть, ты можешь спокойно использовать любой из этих вариантов. :-) Не
получилось никакой оптимизации =) Таким же образом можно определить оптимальный
вариант кода и в других случаях.
Удачи. tripsin