Tela vs Etichette - pagina 10

 
Dmitry Fedoseev:
Anche un confronto puramente stupido di una sola chiamata a TextOut() è 70 volte più lento dell'emissione di testo su un'etichetta.

Non vi rendete conto che la velocità di aggiornamento di un'etichetta non può essere misurata correttamente. Il testo dell'etichetta viene semplicemente passato al grafico per l'elaborazione, questa è una procedura veloce. Ma è impossibile sapere quanto viene elaborato lì, perché il grafico lavora in un thread completamente diverso, in parallelo con l'applicazione principale. Leggete il link che ho dato, così come i post sottostanti, tutto è descritto lì in dettaglio. Non ha senso raccontare tutto di nuovo.

 
Mihail Matkovskij:

Non vi rendete conto che la velocità di aggiornamento di un'etichetta non può essere misurata correttamente. Il testo dell'etichetta viene semplicemente passato al grafico per l'elaborazione, questa è una procedura veloce. Ma quanto viene elaborato lì è impossibile saperlo, perché il grafico lavora in un thread completamente diverso, in parallelo con l'applicazione principale. Leggete il link che ho dato, così come i post sottostanti, tutto è descritto lì in dettaglio. Non ha senso raccontare tutto di nuovo.

Faresti meglio a leggere la mia seconda frase in quel link.

 
Dmitry Fedoseev:

Faresti meglio a leggere la seconda frase del mio link.

Ho capito. Prendilo e misuralo. E cosa vi ha portato al risultato, non vi interessa...? :)

 
Mihail Matkovskij:

Ho capito. Prendilo e misuralo. E cosa ti ha portato al risultato che hai ottenuto, non ti interessa...? :)

Mi interessa solo il risultato che posso avere. Gli altri risultati non sono di alcuna utilità per me.

 
Dmitry Fedoseev:

Mi interessano solo i risultati che posso avere. Gli altri risultati non sono di alcuna utilità per me.

Capisco. Allora vi suggerisco di misurare la velocità del codice sorgente, che sarà pronto presto. Sarete sorpresi dal risultato.

 

quando si tratta diDmitry Fedoseev

qualcun altro verrà e Dmitry lo convincerà )))) il cerchio del buon senso in natura)

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

quando si tratta diDmitry Fedoseev

Verrà qualcun altro e Dmitry lo convincerà ))))

Convincerlo di cosa? Che la Terra è piatta? O che il Sole gira intorno alla Terra?

 
Dmitry Fedoseev:

Convincerci di cosa? Che la Terra è piatta? O che il Sole gira intorno alla Terra?

Sì, ti capisco, la cosa principale è mettere in una coda e poi lasciare che il codice venga eseguito senza aspettare. Ma a volte è critico se lo si deve fare spesso. E penso che possiamo ridisegnare il codice con il timer in modo che non aspetti.

 
Aleksey Mavrin:

quando si tratta diDmitry Fedoseev

arriverà qualcun altro e sarà già convinto da Dmitry )))) Il cerchio del senso comune in natura).

È solo che non ho mai pensato prima d'ora perché le etichette sono più veloci di Kanvas, se tutto viene usato così com'è. Ma quando si sa cosa c'è "sotto il cofano", si comincia già a pensare in modo più costruttivo. Ovviamente, ci sono due ragioni per cui le etichette possono vincere in velocità.

  1. Flusso separato
  2. Ottimizzazione della frequenza degli aggiornamenti dei grafici (per non sovraccaricare inutilmente il processore)
Ne consegue una semplice conclusione logica che anche gli aggiornamenti di BitmatLabel dovrebbero essere ottimizzati o limitati. Per le etichette, gli aggiornamenti sono ottimizzati nel grafico. Almeno ottimizzarle ulteriormente non sarebbe fuori luogo. PerBitmatLabel il programmatore èinvece responsabile. Non c'è niente di complicato. Se fosse stato scritto nella documentazione, per esempio, l'avrei saputo prima.
 
Mihail Matkovskij:

È solo che non ho mai pensato al motivo per cui le etichette sono più veloci di Canvas prima, se tutto è usato così com'è. Ma quando si sa cosa c'è "sotto il cofano", si comincia a pensare in modo più costruttivo. Ovviamente, ci sono due ragioni per cui le etichette possono vincere in velocità.

  1. Flusso separato
  2. Ottimizzazione della frequenza degli aggiornamenti dei grafici (per non sovraccaricare inutilmente il processore)
Ne consegue una semplice conclusione logica che anche gli aggiornamenti di BitmatLabel dovrebbero essere ottimizzati o limitati. Per le etichette, gli aggiornamenti sono ottimizzati nel grafico. Almeno ottimizzarli ulteriormente non sarebbe fuori luogo. PerBitmatLabel il programmatore èinvece responsabile. Non c'è niente di complicato. Se fosse stato scritto nella documentazione, per esempio, l'avrei saputo prima.

Ho capito. Se uso una qualsiasi libreria, cerco di capire prima i suoi interni, questo mi aiuta a prendere una decisione nel caso in cui l'uso non sia ragionevole ed evitare scenari "imbarazzanti" quando qualcosa va male.