Новая версия платформы MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике - страница 12
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При снятии галочек TaskManager показывает больше задач.
А где доказательства, что условия реально одинаковые?
Уберите все графики, чтобы не было фоновых потоков обслуживания, сделайте чистые запуски и продемонстрируйте результаты, пожалуйста.
Да вы что, какая там ошибка. У меня скрипты второй день стоят колом.
Терминал у меня работает на сервере, обновленный, последней версии. Я удалил отладочный вариант у себя на домашней машине и скопировал папку с терминалом с сервера, чтобы протестировать с чистого листа.
Результат запуска скрипта (на всякий случай прикрепил скрипт Example еще раз, который запускаю)
Конфигурация: Windows 7 x64 SP1, CPU i5-4590, 3.30GHz, ОЗУ 16,0 ГБ.
Терминал: Открытие Брокер Version 5.00 build 2815 26 Feb 2021
2021.03.10 13:46:20.525 Example (BR Splice,M5) 200.043046 sec
2021.03.10 13:55:58.630 Example (GOLD Splice,M5) 191.944905 sec
2021.03.10 14:03:50.990 Example (BR-4.21,H1) 191.339045 sec
2021.03.10 14:07:27.397 Example (GOLD-6.21,H1) 191.606125 sec
2021.03.10 14:12:10.978 Example (RTS Splice,M5) 192.699272 sec
2021.03.10 14:15:36.207 Example (RTS-6.21,H1) 194.348582 sec
Запустил скрипт и на серверной машине (правда, она слабенькая).
Конфигурация: Windows Server 2008 R2 Standard SP1 x64, Xeon E5-2658A, 2.20 GHz, ОЗУ 2,00 ГБ
Терминал: Открытие Брокер Version 5.00 build 2815 26 Feb 2021 (тот же, что и выше)
2021.03.10 14:20:58.577 Example (RTS Splice,M5) 453.577035 sec
На остальных инструментах не стал проверять, так как не могу дожидаться столько времени, когда скрипт завершиться.
Что делать-то ? Это же явный косяк терминала. Время выполнения невменяемое.
При этом машины разные, опер. системы разные, т.е. дело явно не в системе и не в оборудовании.
Остается только ваш терминал. Естественно, до последнего обновления этой проблемы не было.
Непонятно, что у вас за окружение, но вот результаты релизного 2815 билда и беты 2824:
Windows 10 build 19042, AMD EPYC 7551P 32-Core, 115 / 127 Gb memory, 1641 / 1861 Gb disk, IE 11, UAC, GMT+2
Windows 10 build 19042, AMD EPYC 7551P 32-Core, 115 / 127 Gb memory, 1641 / 1861 Gb disk, IE 11, UAC, GMT+2
Скрипт выше пересобирался на каждом билде по отдельности. Код операций над строками не менялся уже давно.
Попробуйте обновиться на последнюю бету и попробуйте снова.
В первом случае у вас неоптимизированная множественная перекладка/пересоздание большого количества временных переменных, достигающих 1.8 миллиона символов в одной временной переменной. При таких длинных строках идет дорогая работа с хипом памяти.
Во втором случае код оптимизирован и работает гораздо лучше.
Именно второй вариант я тестировал.
Совет: пишите разумный код и не делайте многомиллионных циклов перевыделения памяти.
В первом случае у вас неоптимизированная множественная перекладка/пересоздание большого количества временных переменных, достигающих 1.8 миллиона символов в одной временной переменной. При таких длинных строках идет дорогая работа с хипом памяти.
Этот вариант запускал. Непонятно, почему дебаг-версия отрабатывает быстро.
Ну и, конечно, хороший пример, чтобы еще улучшить компилятор.
Непонятно, что у вас за окружение, но вот результаты релизного 2815 билда и беты 2824:
Windows 10 build 19042, AMD EPYC 7551P 32-Core, 115 / 127 Gb memory, 1641 / 1861 Gb disk, IE 11, UAC, GMT+2
Windows 10 build 19042, AMD EPYC 7551P 32-Core, 115 / 127 Gb memory, 1641 / 1861 Gb disk, IE 11, UAC, GMT+2
Скрипт выше пересобирался на каждом билде по отдельности. Код операций над строками не менялся уже давно.
Попробуйте обновиться на последнюю бету и попробуйте снова.
А где можно найти MetaTrader 5 x64 build 2824 ?
Этот вариант запускал. Непонятно, почему дебаг-версия отрабатывает быстро.
Ну и, конечно, хороший пример, чтобы еще улучшить компилятор.
Потому что в дебаге совершенно другой движок и другая работа с хипами памяти.
Потому что в дебаге совершенно другой движок и другая работа с хипами памяти.
Тогда логично для string на этапе компиляции делать автоматическую замену.
Наверное, для простых типов сейчас она делается.
Тогда логично для string на этапе компиляции делать автоматическую замену.
Наверное, для простых типов сейчас она делается.
Подозреваю, что в общем случае найдутся какие-то подводные камни, побочные эффекты. А насчёт интеллектуальной замены - компилятор не обязан быть таким интеллектуальным. Тут сильно подумать надо.
Потому что в дебаге совершенно другой движок и другая работа с хипами памяти.
Да, действительно, с оптимизацией работает быстро.
Под отладчиком, без оптимизации у меня также невменяемое время выполнения (на последней версии). Это я сразу и заметил, так как на предыдущих версиях этого не было.
Т.е., похоже, что в предыдущих версиях этот момент под отладчиком как-то решался, теперь же это не прокатывает.
Вообще, до оптимизации я не добрался, так как изначально это работало быстро и нужды не было.