Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Давайте полный код своего теста
держите, но использование rand() не вижу смысла еще раз обсуждать, как вариант замените на некую переменную inc++
да... ошибка какая то у меня в коде, время в секундах хочу выводить, а получаю в 10 раз больше, разделил вроде правильно на 1 000 000, кто может подсказать в чем причина?
держите, но использование rand() не вижу смысла еще раз обсуждать, как вариант замените на некую переменную inc++
да... ошибка какая то у меня в коде, время в секундах хочу выводить, а получаю в 10 раз больше, разделил вроде правильно на 1 000 000, кто может подсказать в чем причина?
ПРОСТО БОМБА
вот ваш код который доказывает наоборот
ПРОСТО БОМБА
вот ваш код который доказывает наоборот
я просто проверки поменял местами
я просто проверки поменял местами
2020.11.02 21:01:38.590 22222 (USDCHF,H1) cnt: loops = 1000 seconds=821.7159
2020.11.02 21:01:52.353 22222 (USDCHF,H1) ArraySize: loops = 1000 seconds=807.9415
Да какой тест? ))
Вы сами показали оба варианта условия цикла.
Игорь выше тоже код привёл.
Просто замерьте выполнение цикла с переменной size и с ArraySize() в условии цикла.
дак докажите мне обратное)
а то у меня в тесте почему-то они одинаковые
я просто проверки поменял местами
да это нужно делать
в этот раз поленился
обернул тесты во внешний цикл, получил так:
2020.11.02 22:06:43.557 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=117.4626
2020.11.02 22:06:58.328 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=102.7337
2020.11.02 22:07:13.075 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=87.9782
2020.11.02 22:07:27.850 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=73.2461
2020.11.02 22:07:42.598 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=58.4859
2020.11.02 22:07:57.380 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=43.7522
2020.11.02 22:08:12.891 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=28.9861
2020.11.02 22:08:28.874 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=13.4910
да это нужно делать
в этот раз поленился
обернул тесты во внешний цикл, получил так:
2020.11.02 22:06:43.557 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=117.4626
2020.11.02 22:06:58.328 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=102.7337
2020.11.02 22:07:13.075 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=87.9782
2020.11.02 22:07:27.850 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=73.2461
2020.11.02 22:07:42.598 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=58.4859
2020.11.02 22:07:57.380 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=43.7522
2020.11.02 22:08:12.891 SpeedTst (EURUSD,H1) ArraySize: loops = 1000 seconds=28.9861
2020.11.02 22:08:28.874 SpeedTst (EURUSD,H1) cnt: loops = 1000 seconds=13.4910
А теперь в цикле поменяйте их местами - удивитесь
А теперь в цикле поменяйте их местами - удивитесь
не удивлюсь, знаю, что может компилятор оптимизировать код на лету
но, имхо, во вложенных циклах, все равно не стоит вызывать ArraySize() без необходимости, проще, да и привык уже обратный цикл использовать
понятное дело, что иногда неудобно, тогда через временную переменную делаю цикл - Ваш вариант №2
имхо, это надежно и понимаешь, что будет происходить
Ну против ИМХО я ничего не могу сказать.
У меня на очень больших повторах победа стала случайной у первого и второго способа... скорее всего стало зависит от кэша проца на текущий момент и общей загрузки.
Вопрос был не касаемо цикла - а касаемо разворачивания функции. Просто в качестве примера был ArraySizeтут
Итог;
for (int i=0; i<ArraySIze(mas); i++) == for (int i=0; i<size; i++)
Но вот если мы добавим во вторую часть инициализацию переменой size. то первый способ выходит в лидеры, на время инициализации этой переменной и приравниванию его значению., ощутимо только при больших повторах
если в тело цикла внести ищменеие размеров массивов, то оптимищация на лету уже не работает
так код измените:
то первый способ выходит в лидеры, на время инициализации этой переменной и приравниванию его значению., ощутимо только при больших повторах
не выходит
runtime оптимизация в лидерах будет
не получится такие простые машшиные команды без профилировщика протестировать, в общем, что хотите можете в цикле писать, как вариант в тестере протестировать, для него важна скорость