Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот так будет без вариантов для оптимизации компилятора.
В результате получаем объективную ожидаемую картину.
т.е. реально получение часа или минуты из времени занимает меньше наносекунды, тогда как через структуру десятки наносекунд.Выйгрыш где-то на 2 порядка...
с учетом того, что в иттерацию входит кроме времени выполнения самой функции, время доступа к i элементу массива, ulong сумма, инкремент i и проверка на выход из диапазона
А вот и тяжелая артиллерия! )
Всем спасибо, протестирую и отпишусь.
А вот и тяжелая артиллерия! )
Всем спасибо, протестирую и отпишусь.
В тестере, на 48 млн вызовов обеих функций, получил ускорение около 25%.
Использование одной TimeToStruct для извлечения и часов и минут (без обертки в функцию) получается еще в 2.25 раза быстрее ускоренного варианта.
Вывод: для универсальности и простоты, а также для одиночных вызовов, можно и нужно использовать функции отсюда или отсюда (не сравнивал int и ulong между собой), а для получения сразу нескольких составляющих времени, лучше объявить одну MqlDateTime структуру и сделать TimeToStruct.
Всех благодарю за участие!
самое сложное и интересное, это получить номер месяца из времени
Ты невыносимый перфекционист ))
Я озадачился ускорением из абсолютно практичных соображений — функция проверки рабочего времени (сложная и многофункциональная) занимала невыносимо много времени (до 20% всего времени теста). Раскопки указали, в том числе, на TimeHour с TimeMinute, вот и полез их оптимизировать.
А "из любви к искусству" лучше заняться чем-то более романтичным, чем вычисление номера месяца ;)
Ты невыносимый перфекционист ))
Я озадачился ускорением из абсолютно практичных соображений — функция проверки рабочего времени (сложная и многофункциональная) занимала невыносимо много времени (до 20% всего времени теста). Раскопки указали, в том числе, на TimeHour с TimeMinute, вот и полез их оптимизировать.
А "из любви к искусству" лучше заняться чем-то более романтичным, чем вычисление номера месяца ;)
Конечно же, ты прав, Андрей.
Ох, нелегкая это работа - не отвлекаться на второстепенности...
Что делать, если я не могу найти функцию TimeHour() в MQL5?
Использовать TimeToStruct(). Там получаете все сразу, не только час.