![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
qualcuno ha qualche compilatore installato? per favore controllate! è così noioso?
Il tempo di indirizzamento di un elemento dell'array non è SEMPRE più lungo del tempo di indirizzamento di una variabile.
Le cifre specifiche saranno diverse per i diversi compilatori, ma la tendenza dovrebbe rimanere la stessa.
Il compilatore è Visual Studio 2005. Il processore è Athlon XP 2500+.
Il tempo di esecuzione insieme all'inizializzazione dell'array è di 1,06-1,07 sec.
Lo stesso ciclo, ma con
dà da 0,37 a 0,4 secondi.
E infine,
0,56-0,6 с.
Quindi vorrei trarre la seguente conclusione:
non riguarda un compilatore e non riguarda "array/non-array", ma la corretta strutturazione dei dati e il codice corretto!
P.S. Naturalmente, tutte le tesi di cui sopra, ad eccezione delle misure di tempo, sono la mia opinione personale, profondamente soggettiva e modesta, solo come programmatore.
sì, l'ottimizzazione del codice risultante nel compilatore è una potenza dopo tutto...
Non voglio entrare nei dettagli, ma sembra che visual studio copiler ottimizzi gli accessi agli array da solo.
per rendere il test equo, è necessario inserire una variabile, diciamo, S; e inserire tra tutte le assegnazioni x,y,z qualcosa come S=S+x, S=S+y, S=S+z, e poi emettere S oltre al tempo per ottenere la velocità "pura".
anche se l'ottimizzatore del compilatore può parzialmente capire questo imbroglio... :)
Ho abbandonato da tempo questi pensieri. Ho anche fatto dei test. E sono giunto a una conclusione:
Il compilatore esegue tutte le operazioni prescritte e semplicemente non ha il diritto di non eseguirle perché è semplicemente impossibile sapere al 100% da dove ho intenzione di accedere a queste variabili - nello stesso metodo, da qualche timer (e codice strutturalmente non collegato) o anche da qualche altro processo.
Quindi, tutto è giusto. Controllato.
P.S. Offtopics, scusate. Non ho potuto resistere.
qual è l'array specificato dal parametro in ArrayCopySeries?
è un normale array di valori o un array di puntatori a valori?
(questa è ovviamente una domanda stupida, ma non programmo da 10 anni, tanto meno in C, tanto meno su Windows.)
e dove leggere tutto questo?
Ho davvero bisogno...
C'è un modo per... Non lo so. È consentita l'invocazione ricorsiva di start()?
Non c'è modo. l'EA non partirà se il pulsante è disabilitato.
è permesso.
Grazie per la tua risposta.
Beh, uh... E ora che si fa...?
Non so... o andare per 5, ma ieri... e oggi per 3... quelli piccoli.
Dovrò accontentarmi di tanti piccoli. Non volevo. Beh, e adesso... :(
Sembra così facile...
(non fate caso a me, c'è già la meditazione che schizza sulla tastiera)
Sono solo io, o dovrebbe essere così?
Sono e sono sempre stati evidenziati normalmente. Ho appena controllato la build 183 e la 187.