Вот профилировщик все улучшают и улучшают. А как им пользоваться? не понятно. Да, я понимаю, что чем больше процентов тем медленнее. Но это все что я понял. В старом было понятно почему та или иная функция тормозит. Либо она очень тяжелая, либо вызывается часто. Соответственно искал методы облегчения и уменьшение количества вызовов. И должен сказать не безуспешно. Многие коды после оптимизации стали работать в разы быстрее. А некоторые и в десятки раз.
Сейчас вот совсем непонятно, насколько и как можно получить выигрыш в скорости тестирования.
Непонятны так же назначения колонок профилировщика Собственная активность ЦП и Общая активность ЦП это что вообще ?
Прошел по ссылке - профилировщик, но там старое описание. Поиск тоже не выдает ничего стоящего. Может статью стоило бы выпустить - что за зверь такой получился ?
Поддерживаю. Мануал иди статья очень пригодилась бы. Мне тоже кажется что я использую профилировщик на 5% от его функционала
Поддерживаю. Мануал иди статья очень пригодилась бы. Мне тоже кажется что я использую профилировщик на 5% от его функционала
Присоединяюсь! Метод научного тыка хочется минимизировать)
Поддерживаю.
Было бы не плохо еще иметь некую единицу идеал относительно которой считается результат работы.
Dmitiry Ananiev:
...
Непонятны так же назначения колонок профилировщика Собственная активность ЦП и Общая активность ЦП это что вообще ?
...
Собственная активность ЦП - условные единицы сложности кода, чем больше значение, тем сложнее/медленнее код, именно этот счётчик критически важен для обнаружения 'узких' мест
Общая активность ЦП - условные единицы сложности ветки исполнения (сложность по стеку вызовов)
Условные единицы зависят от производительности системы в целом (CPU, память, жёсткий диск, сеть), их стоит рассматривать как общая статистическая информация по всей MQL программе в целом.
Сложность программы всегда принимается за 100%, по доле в общей активности ЦП можно отследить ветку программы (функции по стеку вызовов) занимающую большее время исполнения, по собственной активности ЦП - отдельные 'узкие' части программы.
Профилировка такого кода (оптимизированного) возможна только в режиме семплинга, что мы успешно и реализовали.
- www.metatrader5.com
ок.
Есть 2 функции определяющие разрешение торговли по часам. Во вложении.
Первая тупо берет текущее время (TimeCurrent) извлекает час и деле сравнивает час с началом торговли в часах и с концом. Получается дорогой TimrCurrent вызывается на каждом тике.
Вторая функция определяет новый часовой бар начался или нет. Если да, то дальше как в первом.
Пишем простой тестовый робот:
#include <TradeHour.mqh> #include <TradeHour1.mqh> void OnTick(void) { bool x = TradeHour(12,0,23,0); bool y = TradeHour1(12,0,23,0); }
и запускаем профилировщик. Получаем вот такой результат.
И теперь скажите какой TradeHour быстрее будет работать при оптимизации?
что можно усовершенствовать в обоих функциях
какой TradeHour быстрее будет работать при оптимизации?
что можно усовершенствовать в обоих функциях
Задача свести к минимуму количество вычислений. Для этого надо прекратить что-либо передавать в эту функцию. Использовать в ней static const переменную из input-значений советника.
В Тестере TimeCurrent и получение времени текущего бара, скорее всего, работают одинаково быстро (если не так, то это кривая реализация). Поэтому если в своей функции сделать минимум вычислений, то будет неважно, через какой штатный механизм идет получение текущего времени. Т.е. использовать всякие IsNewBar() на каком-нибудь H1 смысла иметь не будет.
ЗЫ Основные тормоза в Тестере - это другие вычисления.
2724
До сих пор профилировщик работает не всегда. Иногда крашит окно визуального тестера в конце теста вместо выдачи результатов.
Нужны данные для воспроизведения? Будет этим кто-то заниматься?
Предложение: при повторном запуске профилирования, если исходник не менялся, не делать перекомпиляцию. Очень долгая она для релиза/профилирования...
Будет удобно, если нужно провести профилирование с другими параметрами или за другой интервал дат.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот профилировщик все улучшают и улучшают. А как им пользоваться? не понятно. Да, я понимаю, что чем больше процентов тем медленнее. Но это все что я понял. В старом было понятно почему та или иная функция тормозит. Либо она очень тяжелая, либо вызывается часто. Соответственно искал методы облегчения и уменьшение количества вызовов. И должен сказать не безуспешно. Многие коды после оптимизации стали работать в разы быстрее. А некоторые и в десятки раз.
Сейчас вот совсем непонятно, насколько и как можно получить выигрыш в скорости тестирования.
Непонятны так же назначения колонок профилировщика Собственная активность ЦП и Общая активность ЦП это что вообще ?
Прошел по ссылке - профилировщик, но там старое описание. Поиск тоже не выдает ничего стоящего. Может статью стоило бы выпустить - что за зверь такой получился ?