Fehler, Irrtümer, Fragen - Seite 2795

 
Artyom Trishkin:
Ich denke, dass Sie alle Hinweise in die Liste aufnehmen. Das Terminal-Subsystem selbst entfernt solche Objekte, deren Zeiger in der Liste CArrayObj
liegen.

Hier gibt es ein potenzielles Speicherleck.

Wenn es ein Speicherleck gibt (ein Zeigerobjekt wurde nicht gelöscht), dann steht im Protokoll, welche und wie viele Objekte nicht gelöscht wurden und wie viel Speicher nicht freigegeben wurde. Aber so etwas hatte ich nicht. Die Objekte werden gelöscht, aber nicht alle ihre Diagrammobjekte.

Rashid Umarov stellte fest, dass das Problem darin besteht, dass der Graph keine Zeit hat, eine so große Anzahl von Befehlen zum Löschen von Objekten aus der Liste zu verarbeiten! Was haben Speicherlecks damit zu tun?
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
//| Script program start function                                    | //|  Объекты всегда передаются по ссылке                             | //| Передача массива объектов                                        | //| Передача массива указателей на объект                            |
 
Mihail Matkovskij:

Dies gilt nur für das Beispiel. Bei dem Indikator, an dem ich arbeite, sind die Namen ziemlich kompliziert. Und ich habe das Beispiel nur zu Demonstrationszwecken gemacht.

Was ist das Problem bei der Erstellung eines Präfixes? Vielleicht hätten Sie es vorher überprüfen sollen?

 
Mihail Matkovskij:

Wenn es ein Speicherleck gibt (ein Zeigerobjekt wurde nicht gelöscht), dann steht im Protokoll, welche und wie viele Objekte nicht gelöscht wurden und wie viel Speicher nicht freigegeben wurde. Aber so etwas hatte ich nicht. Die Objekte werden gelöscht, aber nicht alle ihre Diagrammobjekte.

Rashid Umarov stellte fest, dass das Problem darin besteht, dass das Diagramm keine Zeit hat, eine so große Anzahl von Befehlen zum Löschen von Objekten aus dem Diagramm zu verarbeiten! Was haben Speicherlecks damit zu tun?
Ich habe "potenziell" geschrieben. Das bedeutet, dass Sie später erneut suchen müssen. Es ist besser, es gleich zu tun.
 
Alexey Viktorov:

Wo liegt das Problem, wenn man ein Präfix verwendet? Vielleicht hätten Sie diese Option zuerst prüfen sollen?

Ich muss alle Algorithmen für die Benennung von Objekten in meinem Indikator neu erstellen und weiß nicht, ob es funktionieren wird... Es gibt eine Menge Code, glauben Sie mir.

Vielleicht gibt es einen anderen Weg. Rufen Sie z. B. zuerst ObjectDelete für alle Objekte auf, und rufen Sie dann, nach einer Verzögerung, ObjectFind auf. Und löschen Sie die noch nicht gelöschten Objekte erneut. Und so weiter, bis ihre Zahl 0 ist. Wie kann man eine Verzögerung in einem Indikator erzeugen, wenn die Sleep-Funktion dort nicht funktioniert?

Artyom Trishkin:
Ich habe "Potenzial" geschrieben. Das bedeutet, dass Sie erneut danach suchen müssen. Am besten, Sie gehen gleich hin.
Dies ist nur ein Beispiel und es geht nicht um Speicherlecks. In meinem Indikator ist es anders aufgebaut.
 
Mihail Matkovskij:

Ich muss alle Algorithmen zur Benennung von Objekten in meinem Indikator neu erstellen. Und es gibt eine ganze Menge Code, glauben Sie mir.

Vielleicht gibt es einen anderen Weg. Rufen Sie z. B. zuerst ObjectDelete für alle Objekte auf und dann, nach einer Verzögerung, ObjectFind. Und löschen Sie wiederum die Objekte, die nicht gelöscht werden. Und so weiter, bis ihre Zahl 0 ist. Wie können wir eine Verzögerung in einem Indikator erzeugen, wenn die Sleep-Funktion dort nicht funktioniert?

Dies ist ein sehr guter Ansatz. Ich ändere mühsam alles und lasse die Entwickler mühsam alles ändern. Wer hindert Sie daran, dies an Ihrem eigenen Beispiel zu überprüfen und das Ergebnis bekannt zu geben? Sie wollen das gar nicht tun: "Sollen sie es doch versuchen. Ich würde lieber warten...". © V.Vysotsky.

 
Alexey Viktorov:

Das ist ein sehr guter Ansatz. Ich brauche nicht alles zu ändern, lassen Sie die Entwickler alles ändern. Wer hindert Sie daran, Ihr eigenes Beispiel zu testen und über die Ergebnisse zu berichten? Sie wollen nicht einmal das tun: "Lass sie es versuchen. Ich würde lieber warten...". © V.Vysotsky.

Ich habe nicht gesagt, dass die Entwickler etwas für mich tun würden! Der Algorithmus zur Benennung von Objekten ist einfach nicht für den späteren Aufruf der Funktion ObjectDeledeAll ausgelegt. Es ist nur in dem Beispiel der einfachen Benennung "Trend".

 
Mihail Matkovskij:

Ich habe das nicht gesagt, damit die Entwickler etwas für mich tun!

Nicht explizit, aber die Meldung über einen nicht existierenden Fehler liest sich so.

 
Alexey Viktorov:

Das wird nicht ausdrücklich gesagt, aber die Meldung über den nicht vorhandenen Fehler liest sich so.

Rashid Umarov hat mir alles erklärt und ich habe ihn verstanden. Nur haben Sie aus irgendeinem Grund nicht verstanden, was hier in den Nachrichten geschrieben steht. :)

 
Mihail Matkovskij:

Welcher andere Fehler?

Diese hier.

Mihail Matkovskij:

Ich habe einen Quellcode erstellt, in dem dieser Fehler auftritt:

 
Alexey Viktorov:

Darüber

Hast du in diesem Forum nichts anderes zu tun, Alexey, als meine Beiträge so zu verdrehen, dass sie wie Forderungen an die Entwickler in meinem Namen aussehen...? Ich frage mich, was der Grund für diese seltsame "Begeisterung" Ihrerseits war? Du würdest lieber Neulingen bei ihren Fragen in den entsprechenden Threads helfen, als hier Unsinn zu machen...!