Errori, bug, domande - pagina 2795

 
Artyom Trishkin:
Penso che tu aggiunga tutti i puntatori alla lista. Il sottosistema terminale stesso rimuove tali oggetti, i cui puntatori si trovano nella lista CArrayObj

Qui avete una potenziale perdita di memoria.

Se c'è una perdita di memoria (per oggetto puntatore non è stato cancellato), allora al termine il log dice quali e quanti oggetti non sono stati cancellati e quanta memoria non è stata liberata. Ma io non avevo niente del genere. Gli oggetti vengono cancellati, ma i loro oggetti del grafico non vengono tutti cancellati.

Rashid Umarov ha notato che il problema è che il grafico non ha tempo per elaborare un numero così grande di comandi per eliminare gli oggetti dalla lista! Cosa c'entrano le perdite di memoria?
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
//| Script program start function                                    | //|  Объекты всегда передаются по ссылке                             | //| Передача массива объектов                                        | //| Передача массива указателей на объект                            |
 
Mihail Matkovskij:

Questo è solo nell'esempio. Nell'indicatore su cui sto lavorando, i nomi sono abbastanza complicati. E ho fatto l'esempio solo a scopo dimostrativo.

Qual è il problema di fare un prefisso? Forse avresti dovuto controllare prima?

 
Mihail Matkovskij:

Se c'è una perdita di memoria (per oggetto puntatore non è stato cancellato), allora al termine il log dice quali e quanti oggetti non sono stati cancellati e quanta memoria non è stata liberata. Ma io non avevo niente del genere. Gli oggetti vengono cancellati, ma i loro oggetti del grafico non vengono tutti cancellati.

Rashid Umarov ha notato che il problema è che il grafico non ha il tempo di elaborare un numero così grande di comandi per eliminare gli oggetti dal grafico! Cosa c'entrano le perdite di memoria?
Ho scritto "potenziale". Significa che dovrete cercare di nuovo più tardi. È meglio farlo subito.
 
Alexey Viktorov:

Qual è il problema nel fare un prefisso? Forse avresti dovuto controllare prima questa opzione?

Devo rifare tutti gli algoritmi di denominazione degli oggetti nel mio indicatore e non so se funzionerà... C'è molto codice, credetemi.

Forse c'è un altro modo. Per esempio, prima chiama ObjectDelete per tutti gli oggetti, e poi, dopo un ritardo, chiama ObjectFind. E cancella di nuovo gli oggetti che non sono stati cancellati. E così fino a quando il loro numero è 0. Come si può fare un ritardo in un indicatore, se la funzione Sleep non vi funziona?

Artyom Trishkin:
Ho scritto "potenziale". Significa che dovrete cercarlo di nuovo. È meglio che tu ci vada subito.
Questo è solo un esempio e non si tratta di perdite di memoria. Nel mio indicatore, è impostato diversamente.
 
Mihail Matkovskij:

Devo rifare tutti gli algoritmi di denominazione degli oggetti nel mio indicatore. E c'è un bel po' di codice, credetemi.

Forse c'è qualche altro modo. Per esempio, prima chiama ObjectDelete per tutti gli oggetti e poi, dopo un ritardo, chiama ObjectFind. E cancella di nuovo gli oggetti che non sono stati cancellati. E così fino a quando il loro numero è 0. Come possiamo fare un ritardo in un indicatore se la funzione Sleep non vi funziona?

Questo è un approccio molto buono. Io cambio tediosamente tutto, lascio che gli sviluppatori cambino tediosamente tutto. Chi vi impedisce di verificarlo sul vostro esempio e di annunciarne il risultato? Non volete nemmeno fare questo: "Lasciateli provare. Preferisco aspettare...". © V.Vysotsky.

 
Alexey Viktorov:

Questo è un ottimo approccio. Non ho bisogno di cambiare tutto, lascia che gli sviluppatori cambino tutto. Chi vi impedisce di testare il vostro esempio e riportare i risultati? Non vuoi nemmeno farlo: "Lasciali provare". Preferisco aspettare...". © V.Vysotsky.

Non ho detto una cosa del genere, che gli sviluppatori avrebbero fatto qualcosa per me! L'algoritmo di denominazione degli oggetti non è semplicemente progettato per chiamare la funzione ObjectDeledeAll in seguito. È solo nell'esempio della semplice denominazione "tendenza".

 
Mihail Matkovskij:

Non l'ho detto perché gli sviluppatori facessero qualcosa per me!

Non esplicitamente, ma il messaggio su un bug inesistente si legge così.

 
Alexey Viktorov:

Non è stato detto esplicitamente, ma il messaggio sul bug inesistente si legge così.

Rashid Umarov mi ha spiegato tutto e l'ho capito. Solo che non avete capito quello che è scritto qui nei messaggi per qualche motivo. :)

 
Mihail Matkovskij:

Quale altro insetto?

Questo.

Mihail Matkovskij:

Fatto un codice sorgente dove si verifica questo bug:

 
Alexey Viktorov:

A proposito di questo

Non hai nient'altro da fare su questo forum, Alexey, oltre a distorcere i miei post per farli sembrare rivendicazioni agli sviluppatori a mio nome...? Mi chiedo quale sia stata la ragione di questo strano "entusiasmo" da parte sua? Preferite aiutare i neofiti con le loro domande nei thread appropriati, piuttosto che fare sciocchezze qui...!