Toile et étiquettes - page 14

 
Renat Fatkhullin:

Si vous lisez une ressource stockée au moment de la compilation, vous devez le faire une fois.

Je lis à partir d'un dynamique.

 
Mihail Matkovskij:

Vous devez indiquer à quels paramètres d'entrée Kanvas est lent. Si limit_fps : false, alors c'est une évidence... :)

Est-ce que je cherchais juste lalimite_fps hier?

 
Dmitry Fedoseev:

Est-ce que je cherchais juste lalimite_fps hier?

Qu'est-ce qu'il y a à chercher ? Exécutez le conseiller expert et essayez-le dans différents modes. Avecou sans limit_fps activé.Et alors vous comprendrez tout.

L'objectif est de limiter la fréquence d'appel de CCanvas::TextOut et CCanvas::Update.
 
Mihail Matkovskij:

Qu'est-ce qu'il y a à chercher ? Exécutez le conseiller expert et essayez de prendre des mesures dans différents modes. Avecou sans limit_fps activé.Et alors tu comprendras tout.

L'objectif est de limiter la fréquence d'appel de CCanvas::TextOut et CCanvas::Update.

Vous pensez que tout le monde est juste un idiot ? Juste sauvage et délirant - et c'est normal ? Pourquoi je le chercherais s'il y en avait un ? Téléchargez vos fichiers à partir des liens que vous vous êtes donnés il y a quelques pages et constatez qu'il n'y a pas de méthode de champ pour définir limit_fps. L'appel est là, mais la méthode du champ ne l'est pas, donc ça ne compile pas. Mais si vous commentez une ligne, ça compile. Mais j'ai déjà trouvé la page dans le codebase et téléchargé l'archive, tout y est. Je l'explique délibérément, sinon vous pourriez commencer à penser comment je pourrais le tester avec limit_fps activé alors qu'il n'y a pas de méthode. Mais qui sait, peut-être que ces liens l'ont déjà, peut-être que les fichiers sont mis à jour avec retard là aussi,

Il estinutile de limiter lafréquence des appels à lamise à jour de TextOut lors de la comparaison avec l'étiquette, car la comparaison doit se faire dans les mêmes conditions.

 
Dmitry Fedoseev:

Tu penses que tout le monde est juste idiot et que c'est tout ? Juste sauvage et délirant - et c'est normal ? Pourquoi je le chercherais s'il y en avait un ? Téléchargez vos fichiers à partir des liens que vous vous êtes donnés il y a quelques pages et constatez qu'il n'y a pas de méthode de champ pour définir limit_fps. L'appel est là, mais la méthode du champ ne l'est pas, donc ça ne compile pas. Mais si vous commentez une ligne, ça compile. Mais j'ai déjà trouvé la page dans le codebase et téléchargé l'archive, tout y est. Je l'explique délibérément, sinon vous pourriez commencer à penser comment je pourrais tester de cette façon avec limit_fps activé alors qu'il n'y a pas de méthode. Mais qui sait, peut-être que ces liens l'ont déjà, peut-être que les fichiers sont mis à jour avec retard là aussi,

Il estinutile de limiter lafréquence des appels à lamise à jour de TextOut lors de la comparaison avec l'étiquette, car la comparaison doit se faire dans les mêmes conditions.

Vous venez de télécharger la version de démonstration, la limitation des FPS y fonctionne sans possibilité de la désactiver. Mais il faut un expert pour effectuer les mesures ! Vous pouvez trouver tous les liens ici https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Téléchargez la bibliothèque ChartDisplay.mqh et l'expert CanvasVsLabels.mq5.

Voici une capture d'écran pour vous aider

Et lisez tout attentivement avant d'écrire votre prochain message d'insatisfaction ! :)

 
À des taux élevés de changement dans les diverses propriétés des objets graphiques et lors de la tentative d'enregistrement du graphique lui-même, Windows affichait un écran bleu.
 
Mihail Matkovskij:

Vous venez de télécharger la version de démonstration, la limite de FPS y fonctionne sans possibilité de la désactiver. Mais il faut un expert pour prendre les mesures ! Ici vous pouvez trouver tous les liens https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Téléchargez la bibliothèque ChartDisplay.mqh et l'expert CanvasVsLabels.mq5.

Voici une capture d'écran pour vous aider

Et lisez tout attentivement avant d'écrire votre prochain message d'insatisfaction ! :)

Voici un lien avec une citation de votre poste où vous avez donné des liens pour télécharger des fichiers. Qu'étais-je censé y lire et quel choix avais-je ? Et maintenant vous avez déjà édité votre message. Vous pensez vraiment que tout le monde est si idiot et qu'il est si facile de leur chier dessus ?

Ou pensez-vous que je n'ai rien de mieux à faire et que je suis assis ici à inventer des histoires folles ?

 
Nikolai Semko:
Vraiment ?
Une surprise pour moi.
Combien plus lent que la copie d'un tableau normal de uint de même taille ?
#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  uint Data[];
  
  ArrayResize(Data, 1 e6);

  const string Name = "::" + __FILE__;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceCreate(Name, Data, ArraySize(Data), 1, 0, 0, ArraySize(Data), COLOR_FORMAT_ARGB_NORMALIZE), 100);
    
  uint Width;
  uint Height;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceReadImage(Name, Data, Width, Height), 1);
  
  ResourceFree(Name);
}


Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1973 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 891 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1226 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1232 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 924 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 917 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 925 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 932 mcs.

Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2575 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2442 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 7473 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2308 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2955 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2883 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2715 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2842 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2755 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2304 mcs.

Les décalages sont évidents. Et l'enregistrement montre que 1000 FPS est le plafond.

 
fxsaber:


Les freins sont dans votre visage. Oui et l'enregistrement montre que 1000 FPS est le plafond.

On va trouver une solution, c'est bizarre.

 
Dmitry Fedoseev:

Voici un lien avec une citation de votre message dans lequel vous avez donné des liens pour télécharger des fichiers. Qu'étais-je censé y lire et quel choix avais-je ? Et maintenant vous avez déjà édité votre message. Vous pensez vraiment que tout le monde est si idiot et qu'il est si facile de leur chier dessus ?

Ou pensez-vous que je n'ai rien de mieux à faire et que je suis assis ici à inventer des histoires folles ?

Exactement, sur ce lien, j'ai écrit où télécharger.

Mihail Matkovskij:

Téléchargez les fichiers en format \MQL5\Experts\canvas-vs-labels\measurement\cyberdev\ et \MQL5\Experts\canvas-vs-labels\measurement\ en KB. Pour limiter les fps, définissez limit_fps à true dans les paramètres d'entrée. fichier : CanvasVsLabels.mq5. La façon d'exécuter le test est indiquée ci-dessus. Et il y a une description dans KB.

Ce n'était pas suffisant pour toi ! Alors vous n'avez pas compris le code source, ni même comment l'exécuter. Même si je les ai déjà mesurés et que j'ai publié les résultats ci-dessus. Maintenant, avez-vous téléchargé le code source ? L'exécuter ? Si ce n'est pas le cas, allez étudier au moins les bases de la programmation. Parce que c'est impossible ! Si vous ne savez même pas comment construire une application à partir de sources prêtes à l'emploi, que dire de plus...

Je joins le fichier compilé de l'Expert Advisor. Si vous avez encore des problèmes pour l'utiliser, vous devriez vraiment apprendre à l'utiliser. Commencez par les bases : qu'est-ce qu'une variable, qu'est-ce qu'une fonction, et qu'est-ce qu'un programme ! Et ça continue encore et encore !


Fichier <*.ex* supprimé