Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дмитрий, прежде чем судить чего-то надо понимать с чего всё началось…
А с чего все началось? С отрыва от реальности?
В 100 раз вывод текста в лэйбл быстрее вывода в канвас, притом, что канвас даже не очищал, а лепил текст на текст.
Скоро я представлю тесты, где и Канвас будет достаточно быстрым. А также обновлю соответствующие исходники в КБ. Всё дело в ограничении количества обновлений на единицу времени, как я позже узнал. Смотрите посты выше, там это обсуждалось. Начните с данного сообщения: https://www.mql5.com/ru/forum/364640/page6#comment_21290218.
Скоро я представлю тесты, где и Канвас будет достаточно быстрым. А также обновлю соответствующие исходники в КБ. Всё дело в ограничении количества обновлений на единицу времени, как я позже узнал. Смотрите посты выше, там это обсуждалось. Начните с данного сообщения: https://www.mql5.com/ru/forum/364640/page6#comment_21290218.
А я не фантазирую, а замерю работу кода, который бы применялся в реальности. И мне абсолютно без разницы что и где отрисовывается, я замеряю итоговое время работы программы.
А я не фантазирую, а замерю работу кода, который бы применялся в реальности.
Даже чисто тупое сравнение только одного вызова TextOut() по сравнению с выводом текста в лэйбл раз в 70 медленнее.
Если не хотите или не можете разобраться, то привожу вам цитату:
Николай прав - редактирование свойств лейблов не имеет никакого отношения к отрисовке лейбла.
Лейбл, как любой другой обьект на чарте, отрисовывается в совершенно другом потоке и независимо от работы MQL5 программы. Робот лишь может попросить чарт еще раз принудительно отрисоваться, но не может замерить время отрисовки. Отрисовка чарта с обьектами полностью асинхронна.
А вот отрисовку в канвасе замерить легко, так как она производится прямо в потоке робота и потом во время независимой отрисовки чарта остается сделать нативный BitBlit готового битмапа в контекст окна. Эта операция элементарная и хорошо ускоряется видеокартой.
В текстовых лейблах SetFont/TextOut в TTF шрифтах достаточно дорогой.Если не хотите или не моете разобраться, то вам цитату:
А я вам уже ответил здесь
А я вам уже ответил здесь
Будете спорить с директором компании MetaQuotes?
Будете спорить с директором компании MetaQuotes?
У нас нет разногласий.
Даже чисто тупое сравнение только одного вызова TextOut() по сравнению с выводом текста в лэйбл раз в 70 медленнее.
Это потому, что отрисовка чарта осуществляется в отдельном потоке. В то время как обработка массива пикселей для OBJ_BITMAP_LABEL в том же потоке, что и использующее его приложение, а также передача пикселей битмапу. Поэтому OBJ_BITMAP_LABEL может замедлять работу приложения, но несущественно, если не обновлять битмап слишком часто. Как раз в моих предыдущих тестах OBJ_BITMAP_LABEL давал существенное замедление по этой же причине. Но если ограничить частоту обновлений битмапа, то результат будет даже лучше, чем с лейблами. А если ограничить частоту обновлений лейблов, то они будут работать немного быстрее OBJ_BITMAP_LABEL (за счёт отрисовки в отдельном потоке). Просто, нет никакого смысла обновлять объекты чаще, чем способен воспринимать человеческий глаз. Отсюда и тормоза, всех объектов чарта при слишком частом их обновлении.