Toile et étiquettes - page 10

 
Dmitry Fedoseev:
Même une comparaison purement stupide d'un seul appel à TextOut() est 70 fois plus lente que la sortie de texte dans une étiquette.

Vous ne vous rendez pas compte que le taux de mise à jour d'une étiquette ne peut pas être mesuré correctement. Le texte de l'étiquette est simplement transmis au graphique pour être traité, il s'agit d'une procédure rapide. Mais il est impossible de savoir combien il est traité à cet endroit, car le graphique fonctionne dans un thread complètement différent, en parallèle avec l'application principale. Lisez le lien que j'ai donné, ainsi que les posts ci-dessous, tout y est décrit en détail. Il n'y a aucun intérêt à tout raconter à nouveau.

 
Mihail Matkovskij:

Vous ne vous rendez pas compte que le taux de mise à jour d'une étiquette ne peut pas être mesuré correctement. Le texte de l'étiquette est simplement transmis au graphique pour être traité, il s'agit d'une procédure rapide. Mais il est impossible de savoir dans quelle mesure il est traité, car le graphique fonctionne dans un thread complètement différent, en parallèle avec l'application principale. Lisez le lien que j'ai donné, ainsi que les posts ci-dessous, tout y est décrit en détail. Il n'y a aucun intérêt à tout raconter à nouveau.

Vous feriez mieux de lire ma deuxième phrase sur ce lien.

 
Dmitry Fedoseev:

Vous feriez mieux de lire la deuxième phrase de mon lien.

Je l'ai. Il suffit de le prendre et de le mesurer. Et ce qui vous a conduit au résultat, ça ne vous intéresse pas... ? :)

 
Mihail Matkovskij:

Je comprends. Juste prendre et mesurer. Et qu'est-ce qui vous a conduit au résultat que vous avez obtenu, vous n'êtes pas intéressé... ? :)

Je ne suis intéressé que par le résultat que je peux obtenir. Les autres résultats ne me sont d'aucune utilité.

 
Dmitry Fedoseev:

Je ne suis intéressé que par les résultats que je peux obtenir. Les autres résultats ne me sont d'aucune utilité.

Je vois. Alors je vous suggère de mesurer la vitesse du code source, qui sera bientôt prêt. Vous serez surpris du résultat.

 

quand il s'agit deDmitry Fedoseev

quelqu'un d'autre viendra et Dmitry le convaincra )))) le cercle du bon sens dans la nature)

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

quand il s'agit deDmitry Fedoseev

Quelqu'un d'autre viendra et Dmitry le convaincra. ))))

Le convaincre de quoi ? Que la Terre est plate ? Ou que le Soleil tourne autour de la Terre ?

 
Dmitry Fedoseev:

Nous convaincre de quoi ? Que la Terre est plate ? Ou que le Soleil tourne autour de la Terre ?

Oui, je vous comprends, l'essentiel est de mettre dans une file d'attente puis de laisser le code s'exécuter sans attendre. Mais parfois, c'est critique si vous devez le faire souvent. Oui, je pense que nous pouvons minuter le redécoupage pour que le fil ne l'attende pas.

 
Aleksey Mavrin:

quand il s'agit deDmitry Fedoseev

quelqu'un d'autre viendra et il sera déjà convaincu par Dmitry )))) Le cercle du bon sens dans la nature).

C'estjuste que je ne m'étais jamais demandé pourquoi les Labels sont plus rapides que Kanvas, si tout est utilisé tel quel. Mais lorsque vous savez ce qui se passe "sous le capot", vous commencez déjà à penser de manière plus constructive. Il y a évidemment deux raisons pour lesquelles les étiquettes peuvent gagner en rapidité.

  1. Flux séparé
  2. Optimisation de la fréquence de mise à jour des graphiques (afin de ne pas surcharger inutilement le processeur)
Il en découle une conclusion logique simple : les mises à jour de BitmatLabel doivent également être optimisées ou limitées. Pour les étiquettes, les mises à jour sont optimisées dans le graphique. Au moins, les optimiser davantage ne serait pas déplacé non plus. PourBitmatLabel, le programmeur est enrevanche responsable. Il n'y a rien de compliqué. Si cela était écrit dans la documentation, par exemple, je l'aurais su avant.
 
Mihail Matkovskij:

Je n'ai juste pas vraiment réfléchi à la raison pour laquelle les étiquettes sont plus rapides que Canvas avant, si tout est utilisé tel quel. Mais lorsque vous savez ce qui se passe "sous le capot", vous commencez à réfléchir de manière plus constructive. Il y a évidemment deux raisons pour lesquelles les étiquettes peuvent gagner en rapidité.

  1. Flux séparé
  2. Optimisation de la fréquence des mises à jour des cartes (afin de ne pas surcharger inutilement le processeur)
Il en découle une conclusion logique simple : les mises à jour de BitmatLabel doivent également être optimisées ou limitées. Pour les étiquettes, les mises à jour sont optimisées dans le graphique. Au moins, les optimiser davantage ne serait pas déplacé non plus. PourBitmatLabel, le programmeur est enrevanche responsable. Il n'y a rien de compliqué. Si c'était écrit dans la documentation, par exemple, je l'aurais su avant.

Je comprends. Si j'utilise une bibliothèque, j'essaie d'abord de comprendre son fonctionnement interne, ce qui m'aide à prendre une décision si l'utilisation n'est pas raisonnable et à éviter les scénarios "gênants" lorsque quelque chose ne va pas.

Raison: