
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нашел! Удалось все-таки получить с ООП выше скорость. Да! Преимущества неоспоримые.
Давайте тогда все на ассемблере писать. По-любому будет быстрей.
Не понимаю суть проблемы. НИ разу не видел советника или индикатора с 1 мБ кода.
Сам вызов любой функции тоже занимает определенное время . Давайте и от функций откажемся!
Контроль над большими проектами намного удобней с ООП.
Кроме того, скорость исполнения кода очень часто не так критична как время пинга до брокера и ответ брокра по приказу.
Посмотрите алгоритмы HFT. Они требуют максимального быстродействия, но каких то сложных вычислений вы там не найдете.
PS. Что добраться из пукта А в Пункт Б как правило не нужен суперкар или карьерный БЕЛАЗ. Достаточно мопеда!
Нашел! Удалось все-таки получить с ООП выше скорость. Да! Преимущества неоспоримые.
Так а код то какой был?
В новой сборке MQL компилятора мы уже включили оптимизацию замены виртуального метода прямым вызовом, если это конечный метод в цепочке виртуальных методов и нет связей с внешними библиотеками.
Этот метод позволит упростить и ускорить виртуальные вызовы во множество программ, работающих с классами.
Результаты примера test.mq4 из первого сообщения в 670 билде:
цикл пришлось увеличить с 10 000 000 до 50 000 000, чтобы не работать с мизерными замерами времени в 32-64 мс. Показано время в мс, чем меньше число, тем быстрее код.
Вот что получилось с новым компилятором на том же коде:
ООП с треском выиграл. Но почему?
Сначала виртуальный метод был превращен в обычный, а затем он был заинлайнен и оптимизирован в ноль. Фактически вызов и тело функции полностью пропали, оставив чистый цикл:
Файлы приложены, включая новую бету консольного компилятора. Можете сравнивать любые примеры, используя штатный 670 билд метаедитора(компилятор встроен в него) и консольный компилятор.
Что это доказывает: