Полезный совет. Ускорение работы. Оператор if()

 

Тема такая: чем отличаются варианты друг от друга?

Вариант 1 if( (A==w) && (B==r) && (C==x) && (D==y) && (E==z) )...

Вариант 2 if(A==w) if(B==r) if(C==x) if(D==y) if(E==z) ...

Вариант 2 работает значительно быстрее. Тестировал стратегию в которой восемь вложенных циклов, в последнем цикле вычислений мало, но присутствует условие для сравнения результатов.

Тестировал в равных условиях, т.е. изменял одну только строчку. По варианту1 тестировалось больше часа, по варианту2 прошло за 10 минут!

Всем рекомендую. Интересно, у кого на сколько сократилось время?

 
peshihod:

Тема такая: чем отличаются варианты друг от друга?

Вариант 1 if( (A==w) && (B==r) && (C==x) && (D==y) && (E==z) )...

Вариант 2 if(A==w) if(B==r) if(C==x) if(D==y) if(E==z) ...

Вариант 2 работает значительно быстрее. Тестировал стратегию в которой восемь вложенных циклов, в последнем цикле вычислений мало, но присутствует условие для сравнения результатов.

Тестировал в равных условиях, т.е. изменял одну только строчку. По варианту1 тестировалось больше часа, по варианту2 прошло за 10 минут!

Всем рекомендую. Интересно, у кого на сколько сократилось время?


Вроде бы давно известный факт. Можно еще сократить время работы. Но зависит от типа переменных

 
поздновато спохватились - на МТ5 не будет увеличения скорости, т.к. там реализована сокращенная проверка условий
 
IgorM:
поздновато спохватились - на МТ5 не будет увеличения скорости, т.к. там реализована сокращенная проверка условий

Когда же будет МТ6 сочитающая в себе МТ4 и МТ5?
 

МТ6, вероятно, будет не скоро. Но Вы можете уже сейчас создать ветку, подобную этой.

https://www.mql5.com/ru/forum/119609 Тогда у Вас будет привилегированное право открывать другим глаза на то, что известно только Вам одному.

 
Только не стоит забывать об ограничении вложенности.
 
TheXpert:
Только не стоит забывать об ограничении вложенности.
поподробнее плз, подозревал о существовании нечтоподобного, но чёт не увидел конкретной инфы
 
IgorM:
поподробнее плз, подозревал о существовании нечтоподобного, но чёт не увидел конкретной инфы
Когда такое наступит, компилятор предложит упростить код. Приходится в функции выводить этот код. Иначе не компилируется. Сколько вложенных уровней - не понятно. Бывает, что ругается на один участок кода, хотя в другом вложенностей больше.
 
Zhunko:
Когда такое наступит, компилятор предложит упростить код. Приходится в функции выводить этот код. Иначе не компилируется. Сколько вложенных уровней - не понятно. Бывает, что ругается на один участок кода, хотя в другом вложенностей больше.

Ни разу не сталкивался. Видимо никогда не делаю особо сложных условий
 
Vinin:

Ни разу не сталкивался. Видимо никогда не делаю особо сложных условий
Это касается и циклов.
 
Zhunko:
Это касается и циклов.

Про циклы знаю. Стараюсь не больше двух-трех вложенных циклов делать. Как и условий. Их всегда можно упростить (почти). Как и количество циклов сократить
Причина обращения: