
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дело в том, что оптимизатор не имеет права выбрасывать блоки, где идет вызов других функций (да еще и WinAPI). Кроме того, переменная b, изменяющаяся в циклах, используется в расчете скорости.
Переменная b да, но что до a то она вообще негде не используется. :)
Что касается GetTickCount... Хм, ну а где в доке на эту функцию написанно что это WinApi ? :) Это такая ваша внутрення функция по описанию в доке. Ну да ладно, это уже не принципивально для меня лично. Обьяснение что вызовы внешних функций не обьявленные как константные требует вызова принимется. Но вот этот-то код вообще весь ваш.
Но результат тот же.
2009.10.12 22:09:12 a1 (EURUSD,H1) 2 =============>dt=0,iter time = 0.00000000764500000000 sec 0130804447 cycle per sec
2009.10.12 22:09:10 a1 (EURUSD,H1) 1 =============>dt=0,iter time = 0.00000002488000000000 sec 0040192926 cycle per sec
И даже еще хуже.
Разница аж 3,2544146500981033355134074558535 :) хотя уж тут-то ...
Тут снова вызов функции против одной команды add eax,2
Я еще раз повторю - сейчас оптимизатор кода практически полностью отключен (в нем есть ряд ошибок, не позволяющих его включать на публичной бете). Функция fff() будет заинлайнена и также сведется к константе.
Вообще результаты лучше всего показывать в сыром виде в миллисекундах как есть, а не в виде вычисляемых и малопонятных значений:
и результат (чем меньше. тем лучше/быстрее):
Тот же самый код в Visual Studio 2005 C++:
В неоптимизированной Debug версии результаты следующие:
Фактически на вызове пустой функции fff компилятор Visual C++ умудрился в 2 раза проиграть MQL5. Но это не важно - оптимизатор отключен ради отладки.
Запустим код в Release версии со всеми оптимизациями:
Здесь компилятор эффективно провел оптимизацию, выкинул все лишнее и сгенерировал код, где вообще убраны все циклы (свернуты в константы):
Мы постараемся довести свой оптимизатор до такого же результата. Все возможности для этого у нас есть.
Да именно в debug версии мс-овского компилятора оптимизатор выключен... совсем, для возможности отладки. Ну и если у вас он также отключен совсем, в этой бетте, то тогда понятно, откуда такие результаты. Ну что же будем надеяться что в вашем релизе, когда оптимизатор будет работать, он будет лучше чем мс-овский или даже лучше чем интеловый.
Да... результаты в виде миллисекунд, вообще мало кому интересны, так как это зависит.... от частоты процессора например, а вот сравнение времени выполнения разного кода, на одном и том же процессоре - правильный подход.
Но ответ получен - спасибо.