Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX - страница 26
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вторая и третья это по сути одно и то же.
Только если нас не волнует порядок перебора, а это не всегда так.
А вот первый вариант нужно использовать только если в цикле, может изменяться размер массива.
Т.е., компилятор оптимизацию через добавочную переменную не делает.
Только если нас не волнует порядок перебора, а это не всегда так.
Я написал "по сути", а направление перебора это уже частности.
Я удалил свой пост. Так как посчитал, что он бессмыслен для вашего уровня программирования. Жаль поздно)
Только если нас не волнует порядок перебора, а это не всегда так.
Т.е., компилятор оптимизацию через добавочную переменную не делает.
Точно не делает если в цикле есть функции, которые могут изменить размер массива. А вот насчёт циклов где таких функций нет, я не уверен, делает добавочную переменную или нет.
А вот насчёт циклов где таких функций нет, я не уверен, делает добавочную переменную или нет.
Вот именно это я и хотел узнать, но увы.
Никогда не знаешь, где лучше оптимизировать самому, а где - не мешать компилятору.
Судя по косвенным признакам компилятор смотрит размер массива на каждой итерации
// 0 0 name:
Только если метаквоты придумают магию.
Последнее время вы всё чаще стали применять такую конструкцию
Как то попадалась тема с замерами скорости циклов, вы кстати тоже там вроде участвовали(но это не точно)
Так там выяснили, что for медленнее работает чем while
Вопрос: почему не
или так
Вроде одно и тоже. Нет?
Как то попадалась тема с замерами скорости циклов
Оказалось, что компилятор создает иногда неэффективный код. Поэтому тестировать объективно различные варианты проблематично.
В этом коде можете оставлять одну из строк и смотреть на результат.
Но из-за озвученного бага компилятора с выводами сложно. Более того, на машине один и тот же код может начать выполняться на 10% быстрее, а потом снова замедлиться. Все параллельные приложения убил, но все равно эффект присутствует.
Для себя пока оставил эту тему открытой.
b4242, ME по ALT+M показывает неверные значки.
Хочется по значкам видеть виртуальные функции. Этого нет, к сожалению.
Юбилейная ошибка...
Строка для поиска: Oshibka 100.
// for (uint i = Amount; (bool)i--;) // for (int i = 0; i < Amount; i++) // for (int i = Amount - 1; i >= 0; i--) // uint i = Amount; while((bool)i--) int i = Amount; while(i-- > 0)
В общем то вывод очевиден.
В общем то вывод очевиден.
Мне не очевиден, поскольку, сделав так, получите иные результаты.