Ошибки, баги, вопросы - страница 2557
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А вот и скрин загрузки системы при скроле - ГП почти в состоянии мертвеца - почему не нагружается?
Значит ничего серьезного ему не передается в этот раз.
А вот мой тест, на совершенно пустом экране при активной промотке: явно виден скачок нагрузки, это штатный мониторинг Windows 10
Однако это так. Видеокарта сильно влияет на скорость отрисовки, так как именно она используется при отрисовке.
В вашем вопросе недостает информации об окружении, в котором происходит скроллинг.
Например:
Если же ситуация стабильна, все данные посчитаны и нет наведенных запросов, то сама видеокарта и CPU ответственны за нагрузку.
Так как вы ясно указали "скачок до 100% на ОДНО ЯДРО, а не на все ядра", то это абсолютно нормальная ситуация. Компьютер делает свое дело - он нагружает выбранное ядро и при этом у него CPU usage = 12.5% от всех 8 ядер, а не 100%.
Даю информацию по окружению:
- Индикаторов 16, отрисовка не сложная, без канваса, тулбаров, и прочих изысков - палочки/полосочки - скрин прикладываю.
- На чарте нет программ, открываю окно после оптимизатора, это как пример - тормозят и рабочие чарты, но меньше (там меньше индикаторов).
- Нет, эвенты не обрабатываются.
- Выбран режим отображения баров Unlimited, т.е. подкачка вроде как исключена.
- Графических объектов нет, точней я удалил все стрелки и черточки. Остался лейбл один - он из индикатора. Сегодня выходной и это не должно как то мешать - котировок нет.
Выше выложил скрин, в котором видно, что графическая карта не задействована - как то узнать можно, что она задействуется или это нормально, что нагрузка возле нуля, а ядро загружено?
Скриншоты торговой платформы MetaTrader
Si Splice, M1, 2019.09.07
АО ''Открытие Брокер'', MetaTrader 5, Real
Значит ничего серьезного ему не передается в этот раз.
А вот мой тест, на совершенно пустом экране при активной промотке: явно виден скачок нагрузки, это штатный мониторинг Windows 10
Так может должно, а не передается - как узнать?
Я вроде все достаточно детально и многопланово объяснил.
Компьютер делает свое дело. Любая работа стоит ресурсов и вы видите потребление этих ресурсов.
С чего вы взяли, что на ваш взгляд не должны тратиться ресурсы - не понимаю.
Какую именно характеристику GPU считает считает MSI Afterburner, я не знаю. Характеристик там много и я вовсе не уверен, что общая нагрузка на GPU, а не какой-то частный момент.
Мои доказательства: беру и просто скролю окно броузера:
Ситуация ровно такая же при скроле чарта в MetaTrader 5:
Использование терминалом графической карты доказано.
С учетом того, что я 20 лет уже потратил на проекты торговых терминалов и их оптимизацию, странно не доверять моим словам.
Так может должно, а не передается - как узнать?
Я вроде все достаточно детально и многопланово объяснил.
Компьютер делает свое дело. Любая работа стоит ресурсов и вы видите потребление этих ресурсов.
С чего вы взяли, что на ваш взгляд не должны тратиться ресурсы - не понимаю.
Какую именно характеристику GPU считает считает MSI Afterburner, я не знаю. Характеристик там много и я вовсе не уверен, что общая нагрузка на GPU, а не какой-то частный момент.
Мои доказательства: беру и просто скролю окно броузера:
Ситуация ровно такая же при скроле чарта в MetaTrader 5:
Использование терминалом графической карты доказано.
С учетом того, что я 20 лет уже потратил на проекты торговых терминалов и их оптимизацию, странно не доверять моим словам.
Дело не в доверии к Вам! Я просто предполагаю такой вариант, что у меня проблема с драйверами или ещё там с чем, хотя всякие игры 3D запускаются.
Браузер нагружает видеокарту, ну не каждая страница конечно, а с видео роликами и чем то похожим - проверил.
Дальше я взял и накинул все встроенные индикаторы MT5 на чарт 40 штук - всё шустро скролица, ядро грузится на процентов 20%-25%.
Значит проблемы в каком то индикаторе у меня? Но по идеи же он уже рассчитан - не понимаю. Уже много лет прошу, какой то менеджер внедрить, что б пользователю было видно какая программа/индикатор/скрипт на чарте сколько есть процессорного времени, это было бы очень удобно.
Даю информацию по окружению:
- Индикаторов 16, отрисовка не сложная, без канваса, тулбаров, и прочих изысков - палочки/полосочки - скрин прикладываю.
- На чарте нет программ, открываю окно после оптимизатора, это как пример - тормозят и рабочие чарты, но меньше (там меньше индикаторов).
- Нет, эвенты не обрабатываются.
- Выбран режим отображения баров Unlimited, т.е. подкачка вроде как исключена.
- Графических объектов нет, точней я удалил все стрелки и черточки. Остался лейбл один - он из индикатора. Сегодня выходной и это не должно как то мешать - котировок нет.
Выше выложил скрин, в котором видно, что графическая карта не задействована - как то узнать можно, что она задействуется или это нормально, что нагрузка возле нуля, а ядро загружено?
Вот она известная проблема на лицо, работа индикаторов в одном потоке!
Один поток не справляется с нагрузкой!
Нужна многопоточность, сколько раз уже об этом писали.
Всё оказалось проще, я сохранил шаблон после оптимизации, открыл новый чарт и загрузил шаблон - не тормозит, а значит тормозит именно тогда, когда чарт вызывается из оптимизатора!
Не обратил внимание, что по умолчанию открылся H1, а тормоза на M1. Встроенные индикаторы по прежнему хорошо работают, а какие то мои тормозят при отрисовке.
Нашел я у себя индикатор, который даже в 1 экземпляре может нагрузить процессор (достаточно колесо мыши покрутить на чарте вперед-назад ) - если требуется для детального разбирательства - могу выслать в личку.1) нужно вот здесь урезать осетра с INT_MAX (2 млрд):
это мы поправим со своей стороны тоже
2) всей памятью надо управлять самым жестким образом, тут нет GC
3) переинициализация индикатора на смене таймфрейма происходит теплая без физической переинициализации с нуля, так что нужно самостоятельно освобождать память. особенно ресурсы на глобальном уровне
4) используйте ООП, он хотя бы даст возможность правильно описывать и контролировать ресурсы
Понятно, спасибо.
Действительно, без INT_MAX не удалось воспроизвести краш. В жизни бы не подумал. Впредь буду аккуратней с использованием крайних значений. Часто их использовал.
Иногда хочется в коде хочется быть дураком, чтобы воспроизвести и проверить защиту от дураков.