Galerie d'interfaces utilisateur écrites en MQL - page 56

 
Andrey Barinov #:

Je n' utilise tout simplement pas le canevas de base :).

Et j'ai trouvé qu'il était plus facile d'implémenter une interface multi-fenêtres sur une seule bitmap. Mais chacun ses goûts !

Hélas, pas dans tous les cas. Pour mes tâches, il est techniquement plus facile de travailler avec un ensemble limité de bitmaps. Et 100 % plus rapide. Beaucoup plus rapide.

Mais, pour d'autres développements, d'autres solutions fonctionnent mieux, et donc oui - à chacun son métier. :)

 
Nikolai Semko #:
Non Perth, c'est encore trop. Votre interface avec tout le texte, les ombres, etc. ne dépasse pas 50 ms sur un processeur faible.
Cherchez le bogue.
Exécutez le profilage. Voyez quelles fonctions consomment 95 % du temps.
Peut-être utilisez-vous les fonctions ChartGet ou XY (bien que vous ne soyez pas lié à un graphique).
Quoi qu'il en soit, lancez le profilage. Cela ne prendra que 40 secondes.

Oui, je vais tout vérifier à nouveau. Mais ce n'est pas la question. Le bloc de dessin ne fait pas que dessiner. Il contient des labyrinthes logiques qui traitent les événements entrants. Ils sont nécessaires pour déterminer ce qu'il faut dessiner et ce qu'il ne faut pas dessiner. Ils choisissent où prendre les images, où et comment les superposer. S'il s'agissait d'une simple fonction de dessin de 100 lignes, il n'y aurait rien à dire. Mais il s'agit d'un mécanisme massif qui permet de s'assurer que TOUT est dessiné.

Cela vaut la peine d'être pris en considération.))

 
Andrey Barinov #:

Je n' utilise tout simplement pas le canevas de base :).

...

Et ça, c'est une agréable surprise. :) L'auto-développement est toujours cool. Même s'il est imparfait.

La classe Ccanvas ne me dérange pas (j'ai même inclus sa fonctionnalité dans les fichiers constructeurs), mais je ne l'utilise pas encore. Le mot clé est "encore". J'ai de grands projets pour elle. Dans le futur.

 
Je vérifierai la vitesse de rendu d'une toile verte vierge de la taille de la carte et je la publierai ici.
 
Реter Konow #:

Oui, je vais tout revérifier. Mais là n'est pas la question. Le bloc de dessin ne fait pas que dessiner. Il contient des labyrinthes logiques qui traitent les événements entrants. Ils sont nécessaires pour déterminer ce qu'il faut dessiner et ce qu'il ne faut pas dessiner. Ils choisissent où prendre les images, où et comment les superposer. S'il s'agissait d'une simple fonction de dessin de 100 lignes, il n'y aurait rien à dire. Mais il s'agit d'un mécanisme massif qui permet de s'assurer que TOUT est dessiné.

Cela vaut la peine d'être pris en considération.))

Non, lorsqu'il est correctement implémenté, le modèle d'événement ne prend pas plus d'une microseconde (un millionième de seconde), même s'il y a des milliers de vérifications.
Cherchez un bogue.
Et arrêtez d'être sur la défensive ! Personne ne vous attaque, ils veulent juste vous aider.
J'ai des décalages notables (>300 ms) à partir de 100 mille objets, et liés au prix-temps.
 
Nikolai Semko #:
Non, lorsqu'il est correctement mis en œuvre, le modèle d'événement ne prend pas plus d'une microseconde (un millionième de seconde), même s'il y a des milliers de vérifications.
Cherchez un bogue.
Et arrêtez d'être sur la défensive ! Personne ne vous attaque, ils veulent seulement vous aider.
J'ai des décalages notables (>300 ms) à partir de 100 mille objets, et liés au prix-temps.

Je ne suis pas sur la défensive))) Ha ha. J'explique simplement. ))

D'accord. Je vais commencer par un test simple. Je remplirai une toile plein écran avec une couleur et je mesurerai le temps. Faites des mesures de votre fonction de rendu et vous verrez alors plus clairement si j'ai des freins dans mon code. C'est peut-être le cas. Je n'en discute pas. Je dois le vérifier.

 
Реter Konow #:

Je ne suis pas sur la défensive.) Ha ha. J'explique juste. ))

D'accord. Je vais commencer par un test simple. Je remplirai une toile plein écran avec une couleur et je mesurerai le temps. Faites des mesures de votre fonction de rendu et vous verrez alors plus clairement si j'ai des freins dans mon code. C'est peut-être le cas. Je n'en discute pas. Je dois le vérifier.

J'ai pensé que vous n'aviez peut-être jamais travaillé avec le profilage. Vous ne travaillez pas non plus avec le débogage.


 
Nikolai Semko #:

Je me suis dit que vous n'aviez peut-être jamais travaillé avec le profilage. Vous ne travaillez pas non plus avec le débogage.


Pas avec le débogage. Je ne peux pas le faire à cause du code russe. J'ai travaillé avec le profilage. Mais il y a longtemps. J'aime coder à l'ancienne. C'est comme ça.

Je le ferai demain. Ces derniers jours, j'ai travaillé de 6 heures du matin à 10 ou 23 heures. Par intermittence. Je suis un peu fatigué.
 
La vitesse peut probablement être reléguée au second plan et l'optimisation de la vitesse n'est pas quelque chose qui peut être fait rapidement, pour l'instant il est préférable d'améliorer la fonctionnalité.
 
hini #:
La vitesse peut probablement être reléguée au second plan, et l'optimisation de la vitesse n'est pas quelque chose qui peut être fait rapidement, il est préférable d'améliorer la fonctionnalité pour l'instant.
Il est toujours agréable pour un codeur d'améliorer la vitesse. Et en général, je suis d'accord. C'est raisonnable. Il est très important d'établir des priorités dans le développement. Surtout dans des projets de cette envergure. Il était important pour moi de savoir à quel point la vitesse est importante pour les utilisateurs. Pour ainsi dire, pour obtenir un retour d'information. L'accélération en soi ne faisait pas partie de mes plans initiaux. Je voulais simplement que les utilisateurs ne soient pas gênés par les décalages lorsqu'ils regardent l'interface. :)

Bien sûr, la fonctionnalité des éléments reste ma première priorité. Moteur, éléments, bugs. C'est l'essentiel.