Questions sur la POO dans MQL5 - page 64

 
Igor Makanu:

imho, excellent travail, il y a bien sûr des questions sur la rapidité avec laquelle vous l'avez fait.... si c'est en l'espace d'une heure.... C'est un peu exagéré !

vérifié la version révisée - ok, tout fonctionne correctement


Cette modification ? Dès le début, environ 30 minutes au total.

 
Vladimir Simakov:

Ce métier ? Depuis le début, un grand total de 30 minutes.

Je ne vais pas vous flatter.

Merci encore !

ZS : à quoi ça sert ? une des utilisations - dans ce codehttps://www.mql5.com/ru/forum/325418/page4#comment_16116740

vous pouvez charger/sauvegarder plusieurs objets à travers un fichier et aussi vous pouvez ajouter l'objet généré par le testeur au runtime via une chaîne d'entrée sans arrêter l'exécution de l'EA, je l'ai déjà fait à travers un échange binaire, mais ce qui est bien avec json - il peut être lu sans aucune manipulation supplémentaire

 
Igor Makanu:

Je ne vais pas vous flatter.

Merci encore !

ZS : à quoi ça sert ? une des utilisations - dans ce codehttps://www.mql5.com/ru/forum/325418/page4#comment_16116740

Je peux charger/sauvegarder plusieurs objets par le biais d'un fichier, et je peux également ajouter l'objet généré par le testeur au runtime par le biais d'une chaîne d'entrée sans arrêter l'exécution de l'EA, je l'ai déjà fait par échange binaire, mais ce qui est bien avec json - il peut être lu sans manipulation supplémentaire.

Juste pour un usage interne - c'est plus facile pour les données binaires, IMHO. JSON, cependant, est plus pour l'échange de données sur le réseau, là, sur le temps de réception / transmission, le temps de sérialisation / désérialisation, ne veut rien dire. Ainsi, si vous avez besoin d'organiser un échange sur une seule machine, alors, IMHO, le mappage de fichiers est le meilleur, rapide et facile, et sur le réseau - là, le soccet web sera la règle.

 
Vladimir Simakov:

Pour un usage interne, il est plus facile d'utiliser des données binaires, IMHO. JSON, tout de même, est plus pour l'échange de données sur le réseau, là, sur le fond du temps de réception/transmission, le temps de sérialisation/désérialisation, ne veut rien dire. Si nous devons organiser l'échange de données sur une seule machine, alors, à mon avis, le mappage de fichiers est la meilleure solution, rapide et facile, et sur le réseau - le soccet web sera la règle ici.

Non, l'échange de données est déjà fait et fonctionne - données binaires à travers la base de données Redis - vitesse d'échange de microsecondes - le volume d'échange ... bien, ne semble pas limitée à l'essai 600 mb sans problèmes, et la synchronisation est fourni, par le biais de modèle tous les wrappers, écrire lire dans une commande - en général, sans beaucoup d'efforts, tout fonctionne en douceur et de manière fiable

json pour lire/stocker dans un fichier - opération unique et comme je l'ai écrit pour avoir une chance de faire quelque chose à temps

la tâche est grossièrement formulée comme cecihttps://www.mql5.com/ru/forum/85652/page50#comment_16415557 , en général je me déplace comme décrit ))))

 
Igor Makanu:

non, l'échange de données est déjà fait et fonctionne - données binaires via la base de données Redis - taux de change à la microseconde - volume d'échange... bien, ne semble pas limité à 600 mb sans problèmes, et la synchronisation est fournie, par le biais de modèle tous les wrappers, écrire lire dans une commande - en général sans beaucoup d'efforts, tout fonctionne rapidement et de manière fiable

json pour lire/stocker dans un fichier - opération unique et comme je l'ai écrit pour avoir une chance de faire quelque chose à temps

le problème est presque formulé de cette façonhttps://www.mql5.com/ru/forum/85652/page50#comment_16415557 , en général, je suis la description ))))


Quelle version de Redis ?

J'attends avec impatience la fonctionnalité Streams 5, sinon redis n'est pas si intéressant... Et où puis-je obtenir 5 pour Windows ?

 
Maxim Kuznetsov:


Redis, quelle version ?

J'ai un local sous Windows, uniquement pour le partage de la mémoire.

Redis 3.2.100 64 bit

je n'ai pas vraiment réfléchi, j'ai utilisé la dll ServiceStack.Redis de githab, sans connaître le matériel - quelques jours de travail


Maxim Kuznetsov:

Et où puis-je obtenir 5 pour Windows ?

Il n'est pas disponible. Le projet Windows a été abandonné il y a longtemps.

mais il y a beaucoup d'informations sur le net pour savoir comment faire tourner des logiciels linux sur vin 10https://redislabs.com/blog/redis-on-windows-10/

 
Vladimir Simakov:

Quel est le problème, allouer 12 octets de mémoire sur la pile, ne pas savoir avec certitude ce qu'est un objet chaîne ?

Quelle poisse !

1 - en créant un objet. 2 - simplement par un appel de fonction normal. Le premier nombre est le temps en millisecondes, ne faites pas attention au second.

Il est presque 10 fois plus rapide (et parfois plus de 10 fois). C'est triste... empilement... pile... ***cha

 
Dmitry Fedoseev:

Quelle poisse !

1 - Par la création d'objets. 2 - simplement par un appel de fonction normal. Le premier chiffre est le temps en millisecondes, ne faites pas attention au second.

Il est presque 10 fois plus rapide (et parfois plus de 10 fois). C'est triste... empilement... pile... ***cha.

Considérez cela comme en C# - l'objet est toujours dans le tas. Seuls les scalaires, les descripteurs et (à titre d'exception) certains tableaux de taille connue sont sur la pile.

 
Maxim Kuznetsov:

Pensez-y comme en C# - l'objet est toujours dans le tas. Seuls les scalaires, les descripteurs et (à titre d'exception) certains tableaux de taille connue sont sur la pile.

Vous avez oublié les structures et les classes (sans new) - elles sont toutes deux allouées sur la pile.

 
Dmitry Fedoseev:

Quelle déception !
1 - par la création d'objets. 2 - simplement par un appel de fonction normal. Le premier chiffre est le temps en millisecondes, ne faites pas attention au second.
Il est presque 10 fois plus rapide (et parfois plus de 10 fois). C'est triste... empilement... pile... ***cha.

Pouvez-vous m'expliquer de quoi il s'agit, parce que je suis un peu bête, je l'ai lu trois fois et je ne comprends toujours pas...

Raison: