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

 
Maxim Kuznetsov:

очевидно что Canvas (BitMap) перерисовывается/копируется весь, а лейблы только те которые изменились. Чему удивляться-то ? 

Canvas просто удобен по безрыбью и в меру шустр. 

Dmitry Fedoseev:
И без сравнительных тестов очевидно, что простая лэйбла будет быстрее текст выводить.

Конечно же, я это и раньше знал. Но меня убеждали, что использование Канваса, это самый быстрый способ вывода. При этом в тестере (при выводе данных тестируемого эксперта) он у меня жутко тормозил, особенно на тиках. Использование лейблов конечно же исправило ситуацию. Вот я и решил узнать, на сколько Канвас медленный на самом деле по сравнению с Лейблами. Получается, что в 321 раз, если верить этому замеру. 

 
Mihail Matkovskij:

Конечно же, я это и раньше знал. Но меня убеждали, что использование Канваса, это самый быстрый способ вывода. При этом в тестере (при выводе данных тестируемого эксперта) он у меня жутко тормозил, особенно на тиках. Использование лейблов конечно же исправило ситуацию. Вот я и решил узнать, на сколько Канвас медленный на самом деле по сравнению с Лейблами. Получается, что 321 раз, если верить этому замеру. 

Ну мало ли в мире фантазеров-сказочников?

 
Dmitry Fedoseev:

Ну мало ли в мире фантазеров-сказочников?

Это точно!

 
Maxim Kuznetsov:

очевидно что Canvas (BitMap) перерисовывается/копируется весь, а лейблы только те которые изменились. Чему удивляться-то ? 

Canvas просто удобен по безрыбью и в меру шустр. 

а зачем перерисовывать весь битмап?
чтобы доказать что это медленнее чем перерисовывать метку?

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

 
Taras Slobodyanik:

а зачем перерисовывать весь битмап?
чтобы доказать что это медленнее чем перерисовывать метку?

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

собственно вот так он обновляется:

сразу весь

 
Maxim Kuznetsov:

собственно вот так он обновляется:

сразу весь

так обновляется или перерисовывается?
при обновлении ни разу не видел тормозов.

 
Taras Slobodyanik:

так обновляется или перерисовывается?
при обновлении ни разу не видел тормозов.

Если Вы ни разу не видели тормозов при работе с OBJ_BITMAP_LABEL, то важно сказать, где. Если при работе в терминале, то да. Задержка несущественная. Но если брать работу в тестере, да еще Модель: Все тики или OHLC на M1, то постоянная передача массива m_pixels, с помощью ResourceCreate очень сильно даёт о себе знать. Пиксельные операции вообще принято считать самыми затратными в любых программах.

 
Maxim Kuznetsov:

собственно вот так он обновляется:

сразу весь

эх, помню виндовый канвас можно попиксельно прямо в видео-буфере править. а то так неинтересно(

 
Dmitry Fedoseev:

Ну мало ли в мире фантазеров-сказочников?

Дмитрий, прежде чем судить чего-то надо понимать с чего всё началось…

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

Ошибки, баги, вопросы

Mihail Matkovskij, 2021.03.07 14:02

Comment выводит строки совершенно разной длины (визуально) при совершенно одинаковой их длине

Comment

Код:

void OnStart() {
  string str[5], res="";
  StringInit(str[0], 50, 'a');
  StringInit(str[1], 50, 'X');
  StringInit(str[2], 50, '=');
  StringInit(str[3], 50, ' ');
  StringInit(str[4], 50, ':');
  for (int i = 0; i < 5; i++) 
    res += str[i] + "\n";
  Comment(res);
}

Как можно вывести строки с помощью Comment, чтобы визуально они были одной длины? Например, нужно вывести таблицу, состоящую из трёх колонок, чтобы колонки располагались ровно по вертикали.

Если не ошибаюсь, где-то дальше говорилось о пятидесяти строках…
 
Alexey Viktorov:

Дмитрий, прежде чем судить чего-то надо понимать с чего всё началось…

Если не ошибаюсь, где-то дальше говорилось о пятидесяти строках…

Лучше сделаете пример, где дисплей на основе Канваса обгоняет по скорости дисплей из Лейблов! Вроде, если вы хотите опровергнуть мои утверждения, то по закону логики вы должны доказать обратное. Получится?...