Ошибки, баги, вопросы - страница 2557

 
Nikolai Semko:

Да, краш очень жесткий. Лучше не рисковать.
Все дело в памяти конечно.
Если подчищать ручками память вот так:

то краша тоже не происходит. Во всяком случае у меня не получилось.
Но ведь при смене ТФ должна происходить автоматическая очистка массивов! 

И не понятно, при чем тогда здесь функция Crash(), без выполнения которой нет краша, ведь она считывает только лишь информацию о индикаторах.
Возможно выполнение этой функции тормозит OnDeinit при смене ТФ и поэтому МТ5 не успевает подчистить память. 
Уже давно проблемы с асинхронностью OnDeinit. Непорядок! Ведь не должна же рушится система из-за асинхронности...

1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):

CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,(TimeCurrent()-Weeks*7*24*60*60)*1000,INT_MAX);

это мы поправим со своей стороны тоже

2) всей памятью надо управлять самым жестким образом, тут нет GC

3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно ресурсы на глобальном уровне

4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы

 

А вот и скрин загрузки системы при скроле - ГП почти в состоянии мертвеца - почему не нагружается?


 
Aleksey Vyazmikin:

Речь идет о процессоре FX-8350 и видеокарте Radeon HD 7950. У меня нет ощущения, что видеокарта нагружается от MT5.

Однако это так. Видеокарта сильно влияет на скорость отрисовки, так как именно она используется при отрисовке.

В вашем вопросе недостает информации об окружении, в котором происходит скроллинг.

Например:

  • сколько индикаторов, какого они типа -сложность отрисовки совершенно разная
  • сколько программ на чарте
  • реагируют ли программы на эвенты, особенно перемещения, мышь и тд - они могут в своих потоках создать движуху
  • скроллинг до левого края чарта, что вызывает автоматическую подкачку и перестроение данных
  • количество графических объектов в видимой зоне и всего на чарте, включая скрытые

Если же ситуация стабильна, все данные посчитаны и нет наведенных запросов, то сама видеокарта и CPU ответственны за нагрузку.


Так как вы ясно указали "скачок до 100% на ОДНО ЯДРО, а не на все ядра", то это абсолютно нормальная ситуация. Компьютер делает свое дело - он нагружает выбранное ядро и при этом у него CPU usage = 12.5% от всех 8 ядер, а не 100%.

 
Renat Fatkhullin:

1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):

это мы поправим со своей стороны тоже

2) всей памятью надо управлять самым жестким образом, тут нет GC

3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно русурсы на глобальном уровне

4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы

В продолжение этой же темы, посмотрите пожалуйста это сообщение - не ясно, откуда берутся эти тики, когда биржа закрыта - обращаться к брокеру или бирже?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MQL5 Свои таймфрэймы

Aleksey Vyazmikin, 2019.09.07 09:50

Да, действительно, есть какие то мусорные тики с нулевыми значениями, при этом они до открытия рынка (рынок открывается в 10:00) образовываются... И во время клиринга ещё бывают.



 
Aleksey Vyazmikin:

А вот и скрин загрузки системы при скроле - ГП почти в состоянии мертвеца - почему не нагружается?

Значит ничего серьезного ему не передается в этот раз.

А вот мой тест, на совершенно пустом экране при активной промотке: явно виден скачок нагрузки, это штатный мониторинг Windows 10


 
Renat Fatkhullin:

Однако это так. Видеокарта сильно влияет на скорость отрисовки, так как именно она используется при отрисовке.

В вашем вопросе недостает информации об окружении, в котором происходит скроллинг.

Например:

  • сколько индикаторов, какого они типа -сложность отрисовки совершенно разная
  • сколько программ на чарте
  • реагируют ли программы на эвенты, особенно перемещения, мышь и тд - они могут в своих потоках создать движуху
  • скроллинг до левого края чарта, что вызывает автоматическую подкачку и перестроение данных
  • количество графических объектов в видимой зоне и всего на чарте, включая скрытые

Если же ситуация стабильна, все данные посчитаны и нет наведенных запросов, то сама видеокарта и CPU ответственны за нагрузку.


Так как вы ясно указали "скачок до 100% на ОДНО ЯДРО, а не на все ядра", то это абсолютно нормальная ситуация. Компьютер делает свое дело - он нагружает выбранное ядро и при этом у него CPU usage = 12.5% от всех 8 ядер, а не 100%.

Даю информацию по окружению:

- Индикаторов 16, отрисовка не сложная, без канваса, тулбаров, и прочих изысков - палочки/полосочки - скрин прикладываю.

- На чарте нет программ, открываю окно после оптимизатора, это как пример - тормозят и рабочие чарты, но меньше (там меньше индикаторов).

- Нет, эвенты не обрабатываются.

- Выбран режим отображения баров Unlimited, т.е. подкачка вроде как исключена.

- Графических объектов нет, точней я удалил все стрелки и черточки. Остался лейбл один - он из индикатора. Сегодня выходной и это не должно как то мешать - котировок нет.

Выше выложил скрин, в котором видно, что графическая карта не задействована - как то узнать можно, что она задействуется или это нормально, что нагрузка возле нуля, а ядро загружено?

Скриншоты торговой платформы MetaTrader

Si Splice, M1, 2019.09.07

АО ''Открытие Брокер'', MetaTrader 5, Real

Si Splice, M1, 2019.09.07, АО ''Открытие Брокер'', MetaTrader 5, Real


 
Renat Fatkhullin:

Значит ничего серьезного ему не передается в этот раз.

А вот мой тест, на совершенно пустом экране при активной промотке: явно виден скачок нагрузки, это штатный мониторинг Windows 10


Так может должно, а не передается - как узнать?

 

Я вроде все достаточно детально и многопланово объяснил.

Компьютер делает свое дело. Любая работа стоит ресурсов и вы видите потребление этих ресурсов.

С чего вы взяли, что на ваш взгляд не должны тратиться ресурсы - не понимаю.


Какую именно характеристику GPU считает считает MSI Afterburner, я не знаю. Характеристик там много и я вовсе не уверен, что общая нагрузка на GPU, а не какой-то частный момент.

Мои доказательства: беру и просто скролю окно броузера:

Ситуация ровно такая же при скроле чарта в MetaTrader 5:


Использование терминалом графической карты доказано.

С учетом того, что я 20 лет уже потратил на проекты торговых терминалов и их оптимизацию, странно не доверять моим словам.

 
Aleksey Vyazmikin:

Так может должно, а не передается - как узнать?

Сменить тестировочную программу или слушать того, кто прямо занимается обсуждаемым вопросом.
 
Renat Fatkhullin:

Я вроде все достаточно детально и многопланово объяснил.

Компьютер делает свое дело. Любая работа стоит ресурсов и вы видите потребление этих ресурсов.

С чего вы взяли, что на ваш взгляд не должны тратиться ресурсы - не понимаю.


Какую именно характеристику GPU считает считает MSI Afterburner, я не знаю. Характеристик там много и я вовсе не уверен, что общая нагрузка на GPU, а не какой-то частный момент.

Мои доказательства: беру и просто скролю окно броузера:

Ситуация ровно такая же при скроле чарта в MetaTrader 5:


Использование терминалом графической карты доказано.

С учетом того, что я 20 лет уже потратил на проекты торговых терминалов и их оптимизацию, странно не доверять моим словам.

Дело не в доверии к Вам! Я просто предполагаю такой вариант, что у меня проблема с драйверами или ещё там с чем, хотя всякие игры 3D запускаются.

Браузер нагружает видеокарту, ну не каждая страница конечно, а с видео роликами и чем то похожим - проверил.

Дальше я взял и накинул все встроенные индикаторы MT5 на чарт 40 штук - всё шустро скролица, ядро грузится на процентов 20%-25%.

Значит проблемы в каком то индикаторе у меня? Но по идеи же он уже рассчитан - не понимаю. Уже много лет прошу, какой то менеджер внедрить, что б пользователю было видно какая программа/индикатор/скрипт на чарте сколько есть процессорного времени, это было бы очень удобно.

Причина обращения: