PLO - page 3

 

Sans le deuxième paramètre, c'est la même chose.

Dossiers :
test-2.mq5  2 kb
 

Il y avait quelques erreurs mineures dans votre code - je l'ai corrigé et ajouté une sortie de contrôle.

Mon résultat sur x64 :

2010.07.16 20:10:57	Test (GBPUSD,M15)	Класс:   828 результат: 0.9999999999999994
2010.07.16 20:10:56	Test (GBPUSD,M15)	Функция: 735 результат: 0.9999999999999994

L'analyse du code généré a montré que les appels de fonction et de méthode de classe étaient complètement en ligne et en fait égaux les uns aux autres.

Il n'y avait pas d'appels de fonction dans la boucle, et la vitesse légèrement inférieure de la classe est due à l'adressage indirect qui en découle.


Voici le code :

class CLASS
  {
protected:
   double            prev;

public:
          CLASS() { prev=0.0; }
   double ma(double v)
     {
      prev=0.1*v+0.9*prev;
      return(prev);
     }
  };

double FUNC(double v,double prev)
  {
   prev=0.1*v+0.9*prev;
   return(prev);
  }
void OnStart()
  {
   double x;
   int    start;
   CLASS  CL;
//---
   start=GetTickCount();
   x=0;
   for(int i=0;i<100000000;i++)
     {
      x=FUNC(1,x);
     }
   Print("Функция: "+IntegerToString(GetTickCount()-start)," результат: ",x);
//---
   start=GetTickCount();
   x=0;
   for(int i=0;i<100000000;i++)
     {
      x=CL.ma(1);
     }
   Print("Класс: "+IntegerToString(GetTickCount()-start)," результат: ",x);
  }
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

La différence entre les appels de fonction et les méthodes de classe ne peut être détectée que par des tests spécialement écrits comme ceux-ci.

En réalité, l'utilisation de classes permet d'accélérer le processus en évitant le passage de paramètres fréquemment utilisés.

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Renat:

La différence entre les appels de fonction et les méthodes de classe ne peut être détectée que par des tests spécialement écrits comme celui-ci.

En réalité, l'utilisation de classes permet une accélération au détriment d'une économie sur le transfert des paramètres fréquemment utilisés.


Je suis d'accord, la POO ne deviendra guère plus rapide que la programmation procédurale, à moins que le support matériel n'apparaisse :)

Eh bien, n'en parlez pas, je vais me plonger dans la POO dans mql 5, je n'ai pas encore pris le temps de le faire ;))

 
mrProF:

Je suis d'accord, la POO ne deviendra guère plus rapide que la programmation procédurale, à moins qu'il y ait un support matériel :)

Eh bien, n'en parlez pas, je vais me plonger dans la POO dans mql 5, je n'ai jamais eu le temps de le faire ;))

personne n'a besoin de toute cette POO, sauf les programmeurs qui veulent écrire un cerveau artificiel)))).

Je veux dire, j'ai lu l'article en première page... je ne comprends pas... Clancy... pourquoi ?

Expliquez-moi pourquoi... 30 indicateurs peuvent être attachés à Expert beaucoup plus rapidement... ou quoi pour)))) je ne comprends pas vraiment, ne vous fâchez pas.

peut-être que c'est pour :




 
maryan.dirtyn:

personne n'a besoin de toute cette POO, sauf les programmeurs qui veulent écrire un cerveau artificiel)))

J'ai lu l'article sur la première page... Je ne comprends pas... Clasie... pourquoi ?

Expliquez-moi pourquoi... 30 indicateurs peuvent être attachés à Expert beaucoup plus rapidement... ou quoi pour)))) je ne comprends pas vraiment, ne vous fâchez pas.

Pour les programmeurs qui veulent écrire un "cerveau" artificiel pour eux-mêmes et rendre les traders sans cerveau...
 

Si vous n'aimez pas la POO, ne l'utilisez pas.

Toutes les fonctionnalités de base de MT5 sont implémentées de manière classique sous forme de fonctions.

Et acheter des bonbons au poids ou en sac est une question de goût.

J'aime les bonbons dans le réfrigérateur dans les rayons et emballés dans des emballages multicolores

 
maryan.dirtyn:

personne n'a besoin de toute cette POO, sauf les programmeurs qui veulent écrire un cerveau artificiel)))

J'ai lu l'article en première page... je ne comprends pas... Clasie... pourquoi ?

Expliquez-moi pourquoi... 30 indicateurs peuvent être attachés à Expert beaucoup plus rapidement... ou quoi pour)))) je ne comprends pas vraiment, ne vous fâchez pas.

peut-être que c'est pour :




La POO est une bonne chose pour les grands programmes.
S'il y a moins de 50 lignes de code, vous n'avez pas besoin de la POO.
Mais lorsque le code devient trop important, il devient presque impossible de comprendre ce qui appartient à quoi - seulement des commentaires.
La probabilité d'une erreur augmente lorsque les variables ne sont pas partagées comme prévu ; c'est la pagaille.
En POO, les variables peuvent être stockées dans un conteneur (classe) avec les méthodes (fonctions).

Il n'y a aucune tâche qui peut être écrite en POO et qui ne peut pas être écrite sans POO.
C'est une question de commodité))

La POO n'est pas une méthode de résolution des problèmes, mais une façon de structurer le code.

 

mrProF:

Il n'y a aucune tâche qui ne puisse être écrite en POO et qui ne puisse être écrite sans POO.

C'est une question de commodité))

La POO n'est pas une méthode de résolution des tâches mais une façon de structurer le code.

Et c'est vrai... :)
 

J'avais tort - "Il n'y a aucune tâche qui peut être écrite en POO et qui ne peut pas être écrite sans POO".

C'est ce que je voulais dire))