
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho ottenuto un risultato inaspettato.
imho, i test non sono comparabili
STRUCT2 ha un costruttore
STRUCT2 ha delle stringhe
non c'è documentazione sulle stringhe come implementate in MQL, abbiamo discussohttps://www.mql5.com/ru/forum/1111/page2732#comment_16181920
cioè nel vostro test, STRUCT2 funziona come una classe con un costruttore, che ha una "classe stringa" con un costruttore, che in effetti alloca più volte la memoria per l'oggetto
Penso che un test così complesso debba essere suddiviso in diversi test - il tempo di creazione delle strutture STRUCT1 e STRUCT2 e poi il tempo di accesso ai dati. Alcuni sviluppatori hanno scritto che la stringa viene allocata in memoria solo dopo l'accesso alla stringa - nel tuo esempio, la stringa è inizializzata da una stringa costante, quindi è difficile vedere come viene inizializzata - il compilatore potrebbe non inizializzare (o allocare la memoria?) le stringhe prima di accedervi
Penso che un test così complesso dovrebbe essere suddiviso in diversi test
Non voglio nemmeno disturbare. Ho fatto strutture semplici.
Per quale motivo l'accesso al primo campo di una struttura semplice dipende dalla sua dimensione - non è chiaro.
Non voglio nemmeno disturbare. Ho fatto strutture semplici.
Per quale motivo l'accesso al primo campo di una struttura semplice dipende dalla sua dimensione - non è chiaro.
È meglio fare questa domanda agli sviluppatori del ramo corrispondente. Con codice di prova. O lo spiegheranno, o lo sistemeranno, o non diranno nulla... Solo la terza variante probabilmente funzionerà qui.
Questa è una domanda che è meglio porre agli sviluppatori del ramo interessato. Con il codice di prova. O lo spiegheranno, o lo sistemeranno, o non diranno nulla... Qui c'è probabilmente solo la terza opzione.
Il mio MT5 ha iniziato a causare troppe bestemmie. Ci sono bug critici. Questa è una stronzata.
Non voglio nemmeno disturbare. Ho fatto strutture semplici.
ora gli stessi test STRUCT1 e STRUCT3
Non capisco perché l'accesso al primo campo di una struttura semplice dipende dalla sua dimensione.
Questo è solo un gioco di ipotesi.
un altro modo è aspettare che qualcuno faccia lo stesso test in C++ e mostri i risultati. Se c'è una grande differenza, significa che l'allocazione della memoria in MQL è implementata male
se i test 1 e 2 sono circa gli stessi, è Windows che alloca la memoria in questo modo
Il mio MT5 ha iniziato a causare troppe bestemmie. Ci sono bug critici. Questa è una stronzata.
Si consiglia di segnalare tutti i bug. Critico e non. Senza emozioni, naturalmente :)
se i test 1 e 2 sono più o meno gli stessi, allora questo è il modo in cui Windows alloca la memoria
ha eseguito l'ultimo test 2 volte su
Terminale MetaTrader 5 x64 build 2470 avviato per MetaQuotes Software Corp.
2020.05.30 17:01:27.996 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 53: ArrayResize(Array1,Amount)] = 1 ms.
2020.05.30 17:01:27.996 tst_f (EURUSD,H1) 50000000
2020.05.30 17:01:28.002 tst_f (EURUSD,H1) Allarme: Tempo[tst_f.mq5 54: ArrayResize(Array3,Amount)] = 6 ms.
2020.05.30 17:01:28.002 tst_f (EURUSD,H1) 50000000
2020.05.30 17:01:28.515 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 56: Func(Array1)] = 512 ms.
2020.05.30 17:01:28.515 tst_f (EURUSD,H1) 1333106752
2020.05.30 17:01:30.734 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 57: Func(Array3)] = 2218 ms.
2020.05.30 17:01:30.734 tst_f (EURUSD,H1) 1333106752
2020.05.30 17:01:41.278 tst_f (EURUSD,H1) Avviso: Tempo[tst_f.mq5 53: ArrayResize(Array1,Amount)] = 2 ms.
2020.05.30 17:01:41.278 tst_f (EURUSD,H1) 50000000
2020.05.30 17:01:41.287 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 54: ArrayResize(Array3,Amount)] = 9 ms.
2020.05.30 17:01:41.287 tst_f (EURUSD,H1) 50000000
2020.05.30 17:01:41.840 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 56: Func(Array1)] = 552 ms.
2020.05.30 17:01:41.840 tst_f (EURUSD,H1) 1333106752
2020.05.30 17:01:43.728 tst_f (EURUSD,H1) Alert: Time[tst_f.mq5 57: Func(Array3)] = 1888 ms.
2020.05.30 17:01:43.728 tst_f (EURUSD,H1) 1333106752
non tutti i file sono allegati allo script, le ultime linee non hanno compilato
Avevo il Debug.mqh includer
UPD: sulla vecchia build ho eseguito il test
2020.05.30 17:17:27.604 Terminal MetaTrader 5 - build 2361
2020.05.30 17:13:17.046 tst (EURUSD,H1) Avviso: Tempo[tst.mq5 53: ArrayResize(Array1,Amount)] = 1 ms.
2020.05.30 17:13:17.047 tst (EURUSD,H1) 50000000
2020.05.30 17:13:17.053 tst (EURUSD,H1) Avviso: Tempo[tst.mq5 54: ArrayResize(Array3,Amount)] = 6 ms.
2020.05.30 17:13:17.053 tst (EURUSD,H1) 50000000
2020.05.30 17:13:17.563 tst (EURUSD,H1) Avviso: Tempo[tst.mq5 56: Func(Array1)] = 510 ms.
2020.05.30 17:13:17.563 tst (EURUSD,H1) 1333106752
2020.05.30 17:13:19.416 tst (EURUSD,H1) Alert: Time[tst.mq5 57: Func(Array3)] = 1852 ms.
2020.05.30 17:13:19.416 tst (EURUSD,H1) 1333106752
2020.05.30 17:13:28.971 tst (EURUSD,H1) Alert: Time[tst.mq5 53: ArrayResize(Array1,Amount)] = 2 ms.
2020.05.30 17:13:28.971 tst (EURUSD,H1) 50000000
2020.05.30 17:13:28.977 tst (EURUSD,H1) Alert: Time[tst.mq5 54: ArrayResize(Array3,Amount)] = 6 ms.
2020.05.30 17:13:28.977 tst (EURUSD,H1) 50000000
2020.05.30 17:13:29.456 tst (EURUSD,H1) Avviso: Tempo[tst.mq5 56: Func(Array1)] = 478 ms.
2020.05.30 17:13:29.456 tst (EURUSD,H1) 1333106752
2020.05.30 17:13:31.192 tst (EURUSD,H1) Avviso: Tempo[tst.mq5 57: Func(Array3)] = 1735 ms.
2020.05.30 17:13:31.192 tst (EURUSD,H1) 1333106752
Tutti i bug dovrebbero essere preferibilmente segnalati. Critico o no. Senza emozioni, naturalmente :)
Sono stati creati rami dettagliati.
Prova a scambiare i loro annunci, non dipende da quale è in cima alla pila?
2020.05.30 17:33:07.892 tst_f (EURUSD,H1) Avviso: Tempo[tst_f.mq5 54: ArrayResize(Array3,Amount)] = 6 ms.
2020.05.30 17:33:07.955 tst_f (EURUSD,H1) 50000000
2020.05.30 17:33:07.957 tst_f (EURUSD,H1) Avviso: Tempo[tst_f.mq5 55: ArrayResize(Array1,Amount)] = 1 ms.
2020.05.30 17:33:07.957 tst_f (EURUSD,H1) 50000000
2020.05.30 17:33:09.902 tst_f (EURUSD,H1) Allarme: Tempo[tst_f.mq5 58: Func(Array3)] = 1945 ms.
2020.05.30 17:33:09.902 tst_f (EURUSD,H1) 1333106752
2020.05.30 17:33:10.353 tst_f (EURUSD,H1) Allarme: Tempo[tst_f.mq5 59: Func(Array1)] = 450 ms.
2020.05.30 17:33:10.353 tst_f (EURUSD,H1) 1333106752