Ошибки, баги, вопросы - страница 2556
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Данный индикатор крашит систему.
Причем с изменением разрешения экрана и с мигающими пикселями и необходимой перезагрузкой компьютера.
Причем, если не вызывать казалось бы безобидную функцию Crash(), то краша нет.
Воспроизводится следующим образом:
Воспроизводил данный краш каждый раз, когда так делал ( 6-8 раз)
на LTSC не крашится, в логе ошибка: MemoryException 4424265936 bytes not available, 0 heapmin result
Да, краш очень жесткий. Лучше не рисковать.
Все дело в памяти конечно.
Если подчищать ручками память вот так:
то краша тоже не происходит. Во всяком случае у меня не получилось.
Но ведь при смене ТФ должна происходить автоматическая очистка массивов!
И не понятно, при чем тогда здесь функция Crash(), без выполнения которой нет краша, ведь она считывает только лишь информацию о индикаторах.
Возможно выполнение этой функции тормозит OnDeinit при смене ТФ и поэтому МТ5 не успевает подчистить память.
Уже давно проблемы с асинхронностью OnDeinit. Непорядок! Ведь не должна же рушится система из-за асинхронности...
Почему когда скролишь чарт с индикаторами процессор грузит ядро на 100%?
Ведь индикаторы посчитаны и отрисованы, по идеи, только загрузка из памяти должна быть.
Почему когда скролишь чарт с индикаторами процессор грузит ядро на 100%?
Ведь индикаторы посчитаны и отрисованы, по идеи, только загрузка из памяти должна быть.
Загрузка процессора при отрисовке чартов прямо зависит от производительности видеокарты.
На старых ноутбуках со слабыми картами или на серверах без видеокарт/драйверов неминуемо будет мгновенный, но короткий скачок загрузки CPU.
Ну и сам CPU нужен помощнее, чтобы сьедать повышенные запросы без следа.Загрузка процессора при отрисовке чартов прямо зависит от производительности видеокарты.
На старых ноутбуках со слабыми картами или на серверах без видеокарт/драйверов неминуемо будет мгновенный, но короткий скачок загрузки CPU.
Ну и сам CPU нужен помощнее, чтобы сьедать повышенные запросы без следа.Речь идет о процессоре FX-8350 и видеокарте Radeon HD 7950. У меня нет ощущения, что видеокарта нагружается от MT5.
Да, краш очень жесткий. Лучше не рисковать.
Все дело в памяти конечно.
Если подчищать ручками память вот так:
то краша тоже не происходит. Во всяком случае у меня не получилось.
Но ведь при смене ТФ должна происходить автоматическая очистка массивов!
И не понятно, при чем тогда здесь функция Crash(), без выполнения которой нет краша, ведь она считывает только лишь информацию о индикаторах.
Возможно выполнение этой функции тормозит OnDeinit при смене ТФ и поэтому МТ5 не успевает подчистить память.
Уже давно проблемы с асинхронностью OnDeinit. Непорядок! Ведь не должна же рушится система из-за асинхронности...
1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):
это мы поправим со своей стороны тоже
2) всей памятью надо управлять самым жестким образом, тут нет GC
3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно ресурсы на глобальном уровне
4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы
А вот и скрин загрузки системы при скроле - ГП почти в состоянии мертвеца - почему не нагружается?
Речь идет о процессоре FX-8350 и видеокарте Radeon HD 7950. У меня нет ощущения, что видеокарта нагружается от MT5.
Однако это так. Видеокарта сильно влияет на скорость отрисовки, так как именно она используется при отрисовке.
В вашем вопросе недостает информации об окружении, в котором происходит скроллинг.
Например:
Если же ситуация стабильна, все данные посчитаны и нет наведенных запросов, то сама видеокарта и CPU ответственны за нагрузку.
Так как вы ясно указали "скачок до 100% на ОДНО ЯДРО, а не на все ядра", то это абсолютно нормальная ситуация. Компьютер делает свое дело - он нагружает выбранное ядро и при этом у него CPU usage = 12.5% от всех 8 ядер, а не 100%.
1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):
это мы поправим со своей стороны тоже
2) всей памятью надо управлять самым жестким образом, тут нет GC
3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно русурсы на глобальном уровне
4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы
В продолжение этой же темы, посмотрите пожалуйста это сообщение - не ясно, откуда берутся эти тики, когда биржа закрыта - обращаться к брокеру или бирже?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MQL5 Свои таймфрэймы
Aleksey Vyazmikin, 2019.09.07 09:50
Да, действительно, есть какие то мусорные тики с нулевыми значениями, при этом они до открытия рынка (рынок открывается в 10:00) образовываются... И во время клиринга ещё бывают.