Tela vs Etichette - pagina 4

 
Maxim Kuznetsov:

Ovviamente la Tela (BitMap) è ridisegnata/copiata nella sua interezza, ma solo le etichette sono cambiate. Perché dovrei essere sorpreso?

Canvas è solo conveniente e moderatamente veloce.

Dmitry Fedoseev:
E senza alcun test comparativo è ovvio che la semplice etichetta emetterà il testo più velocemente.

Certo, lo sapevo già da prima. Ma mi sono convinto che usare Kanvas è il modo più veloce per l'uscita. Allo stesso tempo, era terribilmente lento nel tester (quando emetteva i dati di un Expert Advisor in prova), specialmente sui tick. Usare le etichette ha risolto la situazione, ovviamente. Così ho deciso di scoprire quanto sia davvero lento Kanvas rispetto a Labels. Risulta essere 321 volte più lento, se si deve credere a questa misurazione.

 
Mihail Matkovskij:

Certo, lo sapevo già da prima. Ma ero convinto che usare Kanvas fosse il modo più veloce di uscita. Tuttavia, nel tester (quando emetteva i dati dell'EA in prova) era terribilmente lento, specialmente sui tick. Usare le etichette ha risolto la situazione, ovviamente. Così ho deciso di scoprire quanto sia davvero lento Kanvas in confronto a Labels. Risulta 321 volte, se si deve credere a questa misurazione.

Beh, non ci sono molti narratori fantasy nel mondo?

 
Dmitry Fedoseev:

Non ci sono molti narratori fantasy nel mondo?

Questo è sicuro!

 
Maxim Kuznetsov:

Ovviamente la Tela (BitMap) è ridisegnata/copiata nella sua interezza, ma solo le etichette sono cambiate. Perché dovrei essere sorpreso?

Canvas è semplicemente facile da usare e moderatamente veloce.

Perché ridisegnare l'intera bitmap?
per dimostrare che è più lento che ridisegnare l'etichetta?

Per un confronto corretto, dovreste anche ridisegnare solo una parte della bitmap, la dimensione del marcatore.

 
Taras Slobodyanik:

Perché ridisegnare l'intera bitmap?
per dimostrare che è più lento che ridisegnare l'etichetta?

Per un confronto corretto, è anche necessario ridisegnare solo una parte della bitmap, la dimensione dell'etichetta.

In realtà è così che si aggiorna:

tutti insieme

 
Maxim Kuznetsov:

questo è effettivamente il modo in cui viene aggiornato:

tutti insieme.

Aggiorna o ridisegna?
Non ho mai visto un rallentamento quando si aggiorna.

 
Taras Slobodyanik:

quindi viene aggiornato o ridisegnato?
Non ho mai visto freni durante l'aggiornamento.

Se non hai mai visto i freni quando lavori con OBJ_BITMAP_LABEL, è importante dire dove. Se quando si lavora nel terminale, sì. Il ritardo è insignificante. Ma se prendete il lavoro nel tester e anche Model: All ticks o OHLC su M1, il costante passaggio dell'array m_pixels usando ResourceCreate è molto evidente. Le operazioni di pixel sono generalmente considerate le più costose in qualsiasi programma.

 
Maxim Kuznetsov:

questo è effettivamente il modo in cui viene aggiornato:

tutti insieme

eh, ricordo che un vin kanvas può essere pixel per pixel direttamente nel buffer video. non è interessante(

 
Dmitry Fedoseev:

Non ci sono molti narratori fantasy al mondo, vero?

Dmitry, prima di giudicare qualcosa bisogna capire da dove è partito tutto...

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Errori, bug, domande

Mihail Matkovskij, 2021.03.07 14:02

Il commento produce linee di lunghezza completamente diversa (visivamente) mentre la loro lunghezza è esattamente la stessa

Commento

Codice:

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);
}

Come posso emettere linee conCommento, che visivamente erano della stessa lunghezza? Per esempio, voglio produrre una tabella con tre colonne in modo che le colonne siano equamente distanziate verticalmente.

Se non mi sbaglio, da qualche parte lungo la linea c'era scritto cinquanta file...
 
Alexey Viktorov:

Dimitri, prima di giudicare qualcosa bisogna capire da dove è partito tutto...

Se non mi sbaglio, da qualche parte lungo la linea c'era scritto cinquanta righe...

Meglio fare un esempio in cui un display basato su Canvas supera il display di Labels! Tipo, se vuoi confutare le mie affermazioni, allora per la legge della logica devi dimostrare il contrario. Funzionerà...?