Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию.
Профилирование можно проводить на обычном графике в торговой платформе, а также на исторических данных при помощи тестера стратегий. В первом случае программа будет запущена на графике, который обновляется в режиме реального времени. Вы сможете проверить, как поведет себя программа в реальных условиях использования. Во втором случае, программа будет запущена в тестере стратегий в визуальном режиме. Преимущество этого способа в том, что вам не потребуется ждать поступления реальных данных с торгового сервера или наступления определенных торговых условий.
Многие программы, в особенности индикаторы, осуществляют какие-либо расчеты только при приходе нового тика (OnTick, OnCalculate). Таким образом, для оценки производительности приходится ждать поступления новых тиков в режиме реального времени. Используя профилирование на исторических данных, вы можете сразу давать нужную нагрузку и проверять работу программ даже в выходные дни, когда рынки закрыты.
Откройте файл исходного кода программы (MQ4 или MQ5). В меню "Отладка" или на панели инструментов "Стандартная" нажмите " Начать профилирование на реальных данных" или "
Начать профилирование на исторических данных".
После этого автоматически будет скомпилирована специальная версия программы для профилирования. В зависимости от выбранного типа профилирования программа будет запущена на обычном графике в торговой платформе или в тестере стратегий (в визуальном режиме).
По умолчанию, приложение запускается на графике EURUSD H1. Для запуска на другом символе и периоде, укажите их на вкладке "Отладка" в настройках MetaEditor. |
После запуска поработайте некоторое время с приложением, максимально используя все его функции. Это необходимо для того, чтобы профилировщик смог замерить время выполнения всех функций и строк программы.
Далее остановите профилирование: удалите программу с графика или нажмите " Завершить профилирование" меню "Отладка" или на панели инструментов "Стандартная".
Для получения более точных результатов профилирования рекомендуется вручную удалять программу с графика вместо использования команды " |
После завершения профилирования его результаты будут открыты во вкладке "Профилировщик" окна "Инструменты". Результаты можно посмотреть в двух режимах: по вызовам и по строкам. Для переключения между ними используйте контекстное меню.
В этом режиме результаты профилирования представлены по функциям:
При помощи иконок указывается тип функций:
Помимо указанных типов функций, в профилировщике отображаются:
Чтобы перейти к просмотру функции в файле, дважды щелкните на ней левой кнопкой мыши.
В профилировщике отображаются не все функции, а только те, что были вызваны во время работы программы. |
В этом режиме информация о времени работы программы представлена по строкам. Строки сгруппированы по функциям программы.
Чтобы перейти к просмотру строке в файле, дважды щелкните на ней левой кнопкой мыши.
В контекстном меню доступны следующие команды: