
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поэтому обновления требует все окно.
Значит, рано или поздно придется переписывать ChartRedraw(), чтобы сделать его быстрее. Особенно большим выигрыш должен стать именно на простынях с альфа-каналом и сотнями тысяч объектов примитивов.
P.S. Удивительно: "пятерочная" тема популярнее на "четвере", чем на "пятере".
P.S. Удивительно: "пятерочная" тема популярнее на "четвере", чем на "пятере".
Значит, рано или поздно придется переписывать ChartRedraw(), чтобы сделать его быстрее. Особенно большим выигрыш должен стать именно на простынях с альфа-каналом и сотнями тысяч объектов примитивов.
P.S. Удивительно: "пятерочная" тема популярнее на "четвере", чем на "пятере".
Вообще-то проблем со скоростью нет. Как и нет шансов ускорить отрисовку - там все оптимизировано давно. Легко делаются отображение 100 кадров в секунду на чарте при хорошей видеокарте.
Я лишь сделал ремарку по экстремально слабым ноутбукам, время которых уже прошло.
Вообще-то проблем со скоростью нет. Как и нет шансов ускорить отрисовку - там все оптимизировано давно. Легко делаются отображение 100 кадров в секунду на чарте при хорошей видеокарте.
Я лишь сделал ремарку по экстремально слабым ноутбукам, время которых уже прошло.
Подтверждаю. Сами кадры перевыплёвываются очень быстро - примерно как написал Ренат.
Проблема возникла только у меня, в моём "индивидуальном частном случае" - захотелось сделать "внутренний" альфа-канал, работающий при наложении слоёв примитивов внутри самого буфера (до наложения на чарт).
Работающий прототип уже сделал. Собсно скорость меня устраивает, даже учитывая замедление в разы.
// Мультки на mql5 писать пока не собираюсь, а для более медленных нужд скорости достаточно. :)
// Если захочу вывести что-то динамичное быстрее - просто отключу альфа канал.
Проблема возникла только у меня, в моём "индивидуальном частном случае" - захотелось сделать "внутренний" альфа-канал, работающий при наложении слоёв примитивов внутри самого буфера (до наложения на чарт).
Внутренний альфаканал в буфере не нужен - это больше смахивает или на мазохизм или на ошибку проектирования.
Нужен именно конечный альфаканал, который накладывает битмап на чарт. Эта операция у нас работает быстро и с применением видеоускорителей.
Да и без хорошей видяхи около 100 кадров/сек выходит, на голом Pentium G840 и с Update():
2012.03.25 23:59:15 2Alpha_Canvas-Test (EURUSD,H1) update = true: 90.56494412142948 frames/second
Интересно другое: как получается так, что два ядра загружены чуть менее, чем полностью? Никаких других активных процессов при запуске этого скрипта не было.
При одном потоке никак значительно больше 50% не должно получаться...
Расследуем дальше: отрубаем одно ядро в Task Manager. Получаем следующее:
2012.03.26 00:32:26 2Alpha_Canvas-Test (EURUSD,H1) update = true: 36.67167846272324 frames/second
Фреймов в секунду становится меньше, и даже не в 2 раза, а в 2.5! Картинка:
Интересно другое: как получается так, что два ядра загружены чуть менее, чем полностью? Никаких других активных процессов при запуске этого скрипта не было.
При одном потоке никак значительно больше 50% не должно получаться...
С каких пор терминал стал однопоточным?
Откройте в таск менеджере колонку "Счетчик потоков", а учтите, что каждый эксперт/скрипт живет в отдельном потоке.
Интерфейсный поток занят независимой отрисовкой чарта, а параллельно ему независимо работает поток скрипта, который рисует в своем битмапе.
Причем даже отрисовка битмапа во внутреннем буфере и пересоздание объекта никак не тормозит отрисовку чарта. Мы реализовали очень эффективную модель менеджера ресурсов и динамическую привязку битмапов к объектам так, что у них практически нет взаимных блокировок. Если бы у этих потоков была сильная блокируемая взаимосвязь, то нагрузка на процессор была бы меньше - один из связанных потоков был бы вынужден ждать другого. В результате скорость вывода данных бы серьезно пострадала.
Кстати, в терминале появилась замечательная возможность обмениваться массивными данными между MQL5 программами через динамические ресурсы, а не только через глобальные переменные или события. Так как пространство имен динамических ресурсов общее, то любая программа может запросить по точному имени чужой ресурс.
Ну вообще-то это приятная неожиданность...
Откройте в таск менеджере колонку "Счетчик потоков", а учтите, что каждый эксперт/скрипт живет в отдельном потоке.
А в МТ4 с этим как?
А в МТ4 с этим как?
Немного похуже, но все равно примерно так же.
Хотя пока считается хоть один индюк, отклик от гуйни получить не получится.