|
Правильное расположение логических выражений может сэкономить время выполнения оптимизирующего компилятора. Некоторые компиляторы прекращают дальнейшую обработку выражений, как только станет известен результат
A .OR. В .OR. С... X ,AND. Y .AND. Z...
Как только в первом выражении встретится значение TRUE, все выражение считается истинным, тогда как второе выражение считается ложным, как только в нем встретится значение FALSE.
Хороший компилятор прекращает обработку выражения после того, как становится известен результат. Правильно располагая переменные в этих выражениях, можно сэкономить время выполнения. В выражении
A .OR. В .OR. С переменную, которая, вероятнее всего, может быть истинной, следует записать первой. Если С обычно бывает TRUE, А иногда бывает TRUE, а В редко бывает TRUE, то эти переменные следует расположить в следующем порядке:
С .OR. A .OR. В ...
Для того чтобы получить пользу от оптимизации вычислений, программист должен расположить переменные в выражении в таком: порядке, чтобы самая левая переменная чаще других вызывала завершение всего логического выражения. Аналогичное правила может быть разработано для операции AND.
Некоторые компиляторы не прекращают вычислений, когда результат уже известен. Например,
ПЛ/1:
IF (А>В) AND (C<D) THEN ...
Для ускорения выполнения это выражение можно переписать следующим образом:
ПЛ/1:
IF (А>В)
THEN IF (C<D) THEN ...
В данном случае не всегда нужно выполнять оба сравнения.
⇐3.15. Условные выражения || Оглавление || 3.17. Индексация⇒
|