Bibliothèque: MultiTester - page 26

 
traveller00:

1. Je passerais de GetTickCount() à GetTickCount64() dans Sleep2. Sinon, le débordement menace la logique qui n'est pas tout à fait correcte. Et cela arrive nettement moins souvent dans la variante 64. Dans d'autres travaux, cela pourrait valoir la peine de changer aussi.

Là, même en théorie, il ne peut y avoir de menace de débordement.

void OnStart()
{
  uint StartTime1 = UINT_MAX - 100;
  uint StartTime2 = UINT_MAX + 100;
  
  Print(StartTime2 - StartTime1); // 200 
}

2) Le second ArrayResize soulève des questions ici

Il est très probable qu'il devrait être

Non, tout est correct ici. La documentation ment.

3) Et enfin, quelques types différents.

Corrigé, merci.

 
fxsaber:

Il ne peut même pas y avoir, en théorie, de menace de débordement.

Oui, vous avez raison, j'étais inattentif. Dans ce cas, il n'y a pas vraiment de différence.

Mais dans ThirdPartyTicks -> Web.mqh, il semble y avoir une différence

    ulong StartTime = ::GetTickCount();
...
    StartTime = ::GetTickCount() - StartTime;

C'est pourquoi j'utilise la variante 64 bits partout, juste au cas où.


fxsaber:

Non, tout est correct ici. La documentation est erronée.

J'utilise le code suivant

    ushort Shorts[];
    MTTESTER::FileLoad(FileName,Shorts);

Dans FileLoad, il y aura Size=1000, array size 500 et après lecture Read=Size=1000. Et alors ma variante est correcte. Ici, je me suis appuyé sur MSDN et ce comportement est en accord avec lui.

 
traveller00:

J'utilise le code suivant

A l'intérieur de FileLoad sera Size=1000, array size 500 et après lecture Read=Size=1000. Et alors ma variante est correcte. Ici, je me suis appuyé sur MSDN et ce comportement est en accord avec lui.

J'ai 500.

 
fxsaber:

J'en ai 500.

C'est étrange, je viens de revérifier, cela correspond à MSDN. Mais si personne n'a de questions et que tout fonctionne, alors très bien, je ne vois pas l'intérêt de creuser dans les détails.

 

Si quelqu'un l'a fait, merci de partager le schéma d'organisation du travail avec les résultats des optimisations précédentes pendant que le testeur est occupé par l'optimisation en cours.


Il est clair que nous devons copier les fichiers opt et les symboles. Le moyen le plus raisonnable est probablement mklink.

 
fxsaber:

Si quelqu'un l'a fait, merci de partager le schéma d'organisation du travail avec les résultats des optimisations précédentes pendant que le testeur est occupé par l'optimisation en cours.


Il est clair que nous devons copier les fichiers opt et les symboles. La méthode la plus raisonnable est probablement celle du mklink.

J'utilise un lien vers le dossier cache. Seulement, ce n'est pas avec mklink, mais avec le gestionnaire de fichiers Far Commander. Mais c'est la même chose.
Vous pouvez organiser l'accès aux fichiers en dehors du bac à sable et avec WinAPI, mais les liens sont préférables.
En principe, je n'ai besoin de rien d'autre, mais si nécessaire, je dois créer des liens vers d'autres dossiers.
Par organisation du travail, entendez-vous d'autres détails ?
 
Edgar Akhmadeev:
Par schéma d'organisation du travail, entendez-vous d'autres détails ?

Surveillez les fichiers opt et effectuez des passes simples à partir de ces fichiers.

 

Personnellement, j'essaie de ne pas utiliser plusieurs terminaux dans un même dossier. Il est très particulier. S'il tombe tranquillement, vous le découvrirez une semaine plus tard par accident.

Et c'est ainsi que cela fonctionne à travers l'api vin.

 
Bonjour. Est-il possible de modifier un des paramètres de l'EA de manière programmatique et d'effectuer un seul test ?
 
pivomoe:
Bonjour. Est-il possible de modifier l'un des paramètres de l'EA par programme et d'exécuter un seul test ?

La bibliothèque MTTester vous permet de faire absolument tout ce qu'un utilisateur peut faire via l'interface graphique.