Профілювання коду - розробка програм - довідка по metaeditor

Профілювання - це збір характеристик програми, таких як час виконання окремих її фрагментів (функцій, рядків). У MetaEditor вбудована штатна функція профілювання, завдяки якій програміст може провести оптимізацію вихідного коду.

Профілювання можна проводити на звичайному графіку в торговій платформі, а також на історичних даних за допомогою тестера стратегій. У першому випадку програма буде запущена на графіку, який оновлюється в режимі реального часу. Ви зможете перевірити, як поведе себе програма в реальних умовах використання. У другому випадку, програма буде запущена в тестері стратегій в візуальному режимі. Перевага цього способу в тому, що вам не потрібно чекати надходження реальних даних з торговельного сервера.

Багато програм, особливо індикатори, здійснюють будь-які розрахунки тільки при приході нового тика (OnTick, OnCalculate). Таким чином, для оцінки продуктивності доводиться чекати надходження нових тиків в режимі реального часу. Використовуючи профілювання на історичних даних, ви зможете відразу давати потрібну навантаження і перевіряти роботу програм навіть у вихідні дні, коли ринки закриті.

запуск профілювання

Відкрийте файл вихідного коду програми (mq4 або mq5). В меню "Налагодження" або на панелі інструментів "Стандартна" натисніть "Почати профілювання на реальних даних" або "Почати профілювання на історичних даних".

Після цього автоматично буде скомпільована спеціальна версія програми для профілювання. Залежно від обраного типу профілювання програма буде запущена на звичайному графіку в торговому терміналі або в тестері стратегій (в візуальному режимі).

За замовчуванням, додаток запускається на графіку EURUSD H1. Для запуску на інший символ і періоді, вкажіть їх на вкладці "Налагодження" в налаштуваннях MetaEditor.

Після того як додаток буде запущено, потрібен певний час попрацювати з ним, максимально використовуючи всі його функції. Це необхідно для того, щоб профілювальник зміг заміряти час виконання функцій і рядків програми.

Далі слід зупинити профілювання командою "Завершити профілювання" меню "Налагодження" або на панелі інструментів "Стандартна".

Для отримання більш точних результатів профілювання рекомендується вручну видаляти програму з графіка замість використання команди "Завершити профілювання".

Режим "Функції за викликами"

Профілювання коду - розробка програм - довідка по metaeditor

В даному режимі результати профілювання представлені за функціями:

  • Функції - ім'я функції або методу класу.
  • Рядок - рядок, в якій здійснюється виклик функції. Якщо функція викликається в кількох місцях програми, її іконка буде позначена значком. При натисканні на неї буде відкрита інформація по кожному виклику.
  • Кількість - кількість викликів функції за час роботи програми.
  • Час - час виконання функції в мікросекундах, а також у відсотках щодо часу виконання всіх функцій. Час виконання функції є сума часу виконання всіх функцій, що викликаються всередині неї.
  • Графік - графік по часу виконання функцій.

За допомогою іконок вказується тип функцій:

  • - призначена для користувача функція;
  • - системна функція;
  • - функція обробки подій (On *);
  • - метод класу.

Крім зазначених типів функцій, в профілювальник відображаються:

  • @global_initializations - інформація по ініціалізації всіх глобальних змінних;
  • @global_deinitializations - інформація по деініціалізацію всіх глобальних змінних;

У профілювальник відображаються не всі функції, а тільки ті, що були викликані під час роботи програми.

Режим "Функції по рядках"

Профілювання коду - розробка програм - довідка по metaeditor

В даному режимі інформація про час роботи програми представлена ​​на один рядок. Рядки згруповані за функціями програми.

Контекстне меню

У контекстному меню доступні наступні команди:

Схожі статті