Voracité de la mémoire RAM de MT5, problèmes de lecture/écriture de gros fichiers - page 8

 
Horreur
 
Алексей Тарабанов:
Horreur

Les émotions sont très importantes pour comprendre l'attitude d'une personne. Toutefois, il n'est pas inutile de comprendre par rapport à quoi s'expriment des émotions aussi fortes ?

 

Laisse-moi détendre un peu l'atmosphère. Je me suis souvenu d'une blague sur l'horreur.

Un client entre dans une maison close. Ils lui donnent une fille, ils montent à l'étage. Au bout d'une minute, la fille sort de la pièce en criant "Horreur, horreur !" et s'enfuit. Ok, ils lui donnent le second. Elle entre dans la pièce, une minute plus tard elle sort en criant "horreur, horreur !" et s'enfuit aussi. Mais le client doit être servi. Puis la propriétaire elle-même va le voir. Une heure s'écoule. Elle sort en titubant. Elle dit : "Eh bien, l'horreur... Mais pas l'horreur-horreur !" ))))

 
Aleksey Vyazmikin:

Avez-vous vérifié et trouvé aucune accélération ? Ou êtes-vous en train de dire que j'induis tout le monde en erreur ici ?

Tu n'as même pas besoin de vérifier ici. Il n'y aura pratiquement aucune accélération due à un tel changement car, comme en mathématiques, "la somme ne change pas avec le changement des lieux des sommes". Le sophisme est donc évident.

Aleksey Vyazmikin:

Lisez-vous attentivement ce fil de discussion ? Avez-vous vu ma réponse à la solution prête en tant que fonction ? Avez-vous une autre solution ? Bien sûr, je ne sais pas ce qu'est la POO, un lecteur attentif de cette branche l'aurait remarqué tout de suite...

Il y a toujours "une autre solution". Mais dans ce cas, "une autre solution" est inaccessible en raison du manque de connaissances.

Aleksey Vyazmikin:

À propos de la rentabilité/gratuité - c'est ridicule, je viens de montrer que les solutions payantes ne sont pas meilleures que les solutions gratuites, mais vous parlez encore d'argent...

Rien n'a été montré. Une solution payante fait très bien l'affaire, mais elle est utilisée à mauvais escient.

Soit vous payez, soit vous apprenez - c'est la loi du monde moderne.

C'est un cauchemar et un chaos total ici.

 
Roffild:

Tu n'as même pas besoin de vérifier ici. Il n'y aura pratiquement aucune accélération due à un tel changement car, comme en mathématiques, "la somme ne change pas avec le changement des lieux des sommes". Le sophisme est donc évident.

Comment peux-tu être si moralisateur...

Roffild:

Il y a toujours "une autre solution". Mais une "autre solution" n'est pas disponible dans ce cas, par manque de connaissances.

Laissez donc les personnes compétentes s'exprimer sur le fond, si vous ne ressentez pas le besoin d'aider, qu'est-ce qui vous anime ?

Roffild:

Rien n'a été montré. La solution payante fait très bien son travail, mais elle est utilisée de la mauvaise manière.

Soit vous payez, soit vous apprenez - la loi du monde moderne.

C'est un cauchemar et un chaos total ici.

Pouvez-vous me dire comment utiliser une classe rédigée en fonction de mes RPT pour mes objectifs ?

 
Aleksey Vyazmikin:

Comment peux-tu être si moralisateur...

Laissez donc les personnes compétentes s'exprimer sur le fond. Si vous n'avez pas besoin d'aider, qu'est-ce qui vous motive ?

Pouvez-vous me dire comment utiliser une classe rédigée en fonction de mes RPT pour mes objectifs ?

L'arrogance me donne beaucoup d'expérience dans la programmation de telles tâches.

Tout le monde s'est déjà exprimé sur le fond. Même fxsaber a donné un lien vers une solution. Mais toutes les vraies solutions ont été rejetées ou ignorées.

Le cours est bon, mais le cahier des charges n'a manifestement pas été rédigé correctement pour des raisons que personne ne comprend.

S'il est si difficile de lire un fichier CSV en 10 lignes de code, peut-être ne devriez-vous pas le faire vous-même ?

 
Roffild:

Ce qui me donne confiance, c'est une grande expérience de la programmation de telles tâches.

Tout le monde s'est déjà exprimé sur le fond. Même fxsaber a donné un lien vers une solution. Mais toutes les solutions réelles ont été rejetées ou ignorées.

La classe est bonne, mais le cahier des charges n'a clairement pas été rédigé correctement dans un but que personne ne comprend.

S'il est si difficile de lire un fichier CSV en 10 lignes de code, peut-être ne devriez-vous pas le faire vous-même ?

Votre contribution au fil de discussion est claire.

 

Je peux proposer ma propre solution. Voici le code de test et le résultat. Le fichier a une taille de 140Mb et contient 2000000 enregistrements. Le gestionnaire des tâches a relevé une utilisation de la mémoire de 270 Mo (maximum moins la quantité sans le script).

   ulong lc1=GetTickCount();
   CSV *csv=new CSV();
   csv.Read_from_file("fff0.csv",true);//Чтение с файла с автоматической конвертацией в нужный формат
   csv.Write_to_file("fff1.csv",true); //Запись в файл
   Print(csv.Get_info());              //Вывод информации о таблице(столбцы, строки, типы данных для каждого столбца)
   Print(GetTickCount()-lc1);          //Вывод времени работы
   delete csv;


Voici un exemple de fichier CSV utilisé dans le test :

boooool;dooooouble;enuuuuuum;looooooong;striiiiiiign;tiiiiiime
FALSE;0.00000000;ORDER_TYPE_BUY;0;0;1970.01.01 00:00
TRUE;1.00000000;ORDER_TYPE_SELL;1;1;1970.01.01 00:00
FALSE;2.00000000;ORDER_TYPE_BUY_LIMIT;2;2;1970.01.01 00:00
FALSE;3.00000000;ORDER_TYPE_SELL_LIMIT;3;3;1970.01.01 00:00

Sauvegarde du fichier sans compter les énumérations

boooool;dooooouble;enuuuuuum;looooooong;striiiiiiign;tiiiiiime
0;0.00000000;8;0;0;1970.01.01 00:00
1;1.00000000;0;1;1;1970.01.01 00:00
0;2.00000000;1;2;2;1970.01.01 00:00
0;3.00000000;2;3;3;1970.01.01 00:00
 
Aliaksandr Hryshyn:

Je peux proposer ma propre solution. Voici le code de test et le résultat. Le fichier a une taille de 140Mb et contient 2000000 enregistrements. Le gestionnaire des tâches a relevé une utilisation de la mémoire de 270 Mo (maximum moins la quantité sans le script).


Voici un exemple de fichier CSV utilisé dans le test :

Sauvegarde du fichier sans compter les énumérations

Super ! Je suis d'accord pour essayer votre solution.