Canvas vs Labels - страница 10

 
Dmitry Fedoseev:
Даже чисто тупое сравнение только одного вызова TextOut() по сравнению с выводом текста в лэйбл раз в 70 медленнее.

Вы просто не понимаете что скорость обновления лейбла невозможно корректно измерить. Текст лейбла просто передается в чарт на обработку, это быстрая процедура. Но сколько он там обрабатывается это узнать невозможно, так как чарт работает в совершенно другом потоке, параллельно с основным приложением. Почитайте по ссылке, которую я дал, а также сообщения ниже, там всё подробно описано. Нет смысла заново всё пересказывать.

 
Mihail Matkovskij:

Вы просто не понимаете что скорость обновления лейбла невозможно корректно измерить. Текст лейбла просто передается в чарт на обработку, это быстрая процедура. Но сколько он там обрабатывается это узнать невозможно, так как чарт работает в совершенно другом потоке, параллельно с основным приложением. Почитайте по ссылке, которую я дал, а также сообщения ниже, там всё подробно описано. Нет смысла заново всё пересказывать.

Прочитайте лучше по той моей ссылке второе предложение. 

 
Dmitry Fedoseev:

Прочитайте лучше по той моей ссылке второе предложение. 

Я понял. Просто брать и измерять. А что привело Вас к полученному результату, Вам не интересно?... :)

 
Mihail Matkovskij:

Я понял. Просто брать и измерять. А что привело Вас к полученному результату, Вам не интересно?... :)

Мне интересен только тот результат, который я могу иметь. От остальных результатов мне нет никакой пользы.

 
Dmitry Fedoseev:

Мне интересен только тот результат, который я могу иметь. От остальных результатов мне нет никакой пользы.

Ясно. Тогда предлагаю Вам измерить скорость работы исходника, который будет готов в ближайшее время. Вы будете удивлены результатом.

 

когда дойдёт и до Dmitry Fedoseev

придёт кто-то ещё, и его уже будет убеждать Дмитрий ))) круговорот здравого смысла в природе)

Dmitry Fedoseev
Dmitry Fedoseev
  • 2021.02.06
  • www.mql5.com
Профиль трейдера
 
Aleksey Mavrin:

когда дойдёт и до Dmitry Fedoseev

придёт кто-то ещё, и его уже будет убеждать Дмитрий ))) круговорот здравого смысла в природе)

В чем убеждать? В том, что Земля плоская? Или в том, что Солнце вокруг Земли крутится?

 
Dmitry Fedoseev:

В чем убеждать? В том, что Земля плоская? Или в том, что Солнце вокруг Земли крутится?

Да я вас понимаю, главное пульнуть в очередь и дальше пусть код выполняется без ожидания. Но иногда это критично если пульнуть много. Да и с канвасом думаю можно по таймеру сделать перерисовку, чтобы поток её не ждал.

 
Aleksey Mavrin:

когда дойдёт и до Dmitry Fedoseev

придёт кто-то ещё, и его уже будет убеждать Дмитрий ))) круговорот здравого смысла в природе)

Просто я раньше не задумывался над тем, почему Лейблы работают быстрее Канваса, если всё использовать как есть. Но когда знаешь, что "под капотом", то уже начинаешь думать более конструктивно. Очевидно, что лейблы могут выигрывать в скорости по двум причинам.

  1. Отдельный поток
  2. Оптимизация частоты обновлений в чарте (чтобы излишне не перегружать процессор)
Тогда следует простой логический вывод, что обновления BitmatLabel также нужно оптимизировать или ограничить. Для Лейблов обновления оптимизированы в чарте. Хоть  дополнительно оптимизировать их также будет не лишним. За BitmatLabel же ответственность берет на себя программист. Ничего сложного. Если бы об этом было написано, например, в документации, то я бы и раньше это знал.
 
Mihail Matkovskij:

Просто я раньше не задумывался над тем, почему Лейблы работают быстрее Канваса, если всё использовать как есть. Но когда знаешь, что "под капотом", то уже начинаешь думать более конструктивно. Очевидно, что лейблы могут выигрывать в скорости по двум причинам.

  1. Отдельный поток
  2. Оптимизация частоты обновлений в чарте (чтобы излишне не перегружать процессор)
Тогда следует простой логический вывод, что обновления BitmatLabel также нужно оптимизировать или ограничить. Для Лейблов обновления оптимизированы в чарте. Хоть  дополнительно оптимизировать их также будет не лишним. За BitmatLabel же ответственность берет на себя программист. Ничего сложного. Если бы об этом было написано, например, в документации, то я бы и раньше это знал.

Понимаю. Я если какую-либо библиотеку использую, стараюсь сначала разобраться в кишках, это помогает и принять решение если использование нецелесообразно, и избежать "кривых" сценариев использования, когда вылазят какие-либо грабли.