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
Se si cambia la dimensione degli array nel corpo del ciclo, l'ottimizzazione al volo non funziona
quindi cambiate il codice:
)))) semplicemente dovete anche cambiare il valore della vostra variabile di dimensione, quindi il primo metodo nominato usando ArraySIze beneficerà
Beh, non posso dire nulla contro IMHO.
Su replay molto grandi, le mie vittorie sono diventate casuali per il primo e il secondo metodo... Molto probabilmente è diventato dipendente dalla cache corrente della CPU e dal carico complessivo.
La mia domanda non riguardava il ciclo, ma come si svolgeva la funzione. È solo che ArraySize è stato usato come esempio.
Questo è un bene) La perfezione di un linguaggio di alto livello è proprio quando un'entrata conveniente è tanto economica quanto un'entrata non conveniente ma inizialmente economica. Peccato che non sia sempre così, e l'aiuto di un aiutante per i neofiti non sempre o..... non ci sarebbero domande)))
Se si cambia la dimensione degli array nel corpo del ciclo, l'ottimizzazione al volo non funziona
Quindi cambiate il codice:
non funziona
l'ottimizzazione runtime è in testa
non si possono testare comandi mashin così semplici senza un profiler, o si può scrivere nel ciclo, o testare in un tester, la velocità è importante per questo.
Non stavo parlando del ciclo ma di come il compilatore svolge le funzioni..... andiamo.
Vi lascio a questo.
)))) potete anche cambiare il valore della vostra variabile size, quindi il primo metodo che usa ArraySIze vincerà
Ho scritto sopra - un codice così semplice non può essere testato con semplici misure, ci sono molti fattori - il codice è piccolo - entrerà nella cache del processore, il codice deve essere ben suddiviso nel processore in micro-comandi paralleli nella pipeline del processore, cioè i registri saranno caricati rapidamente dal data prefetching
e forse anche rand() sarà memorizzato nella cache da qualche parte
Non so come testare senza debugger - almeno lì si può vedere il tempo di esecuzione delle istruzioni in tatto
Allora dimostratemi che ho torto).
Perché nel mio test per qualche motivo sono uguali.
Ho cambiato il mio post.
Mi sembra che ArraySize ora sia più veloce della variabile cnt.
Prima era il contrario. Forse l'incremento cnt-- sta influenzando, il corpo del ciclo è diverso e probabilmente bisogna inventare qualcos'altro per il carico.
Questo è strano.
L'utilizzo di ArraySize(arr) nella condizione di loop mostra meno tempo rispetto all'utilizzo della variabile cnt.
Prima era viceversa. Forse è un errore? Non dovrebbe essere così.
Non hai sbagliato nulla nel tuo codice, chi cambierà il valore per te?
cnt
cambiarlo per voi, come accade nella prima variante
500p domanda (nessun controllo), quale modo è più veloce. vedere quante funzioni esterne sono chiamate nel metodo superiore
come variante del test - puoi anche infilare solo diversi array in ogni test - nel mio esempio arr1,arr2...
cioè tst1_arr1[],tst1_arr2[] .... e tst2_arr1[],tst2_arr2[]
questo sarebbe un test più giusto.
Sono fuori, molto distraente - imho, comodo, usalo
Non so come testare senza debugger - almeno si può vedere il tempo di esecuzione delle istruzioni in cicli di clock.
Beh, sì - non si può fare a meno del debugger. E nel tempo dell'orologio lì...
Questo è strano.
L'uso di ArraySize(arr) nella condizione di loop mostra meno tempo rispetto all'uso della variabile cnt.
Prima era viceversa. Forse è un errore? Non dovrebbe essere così.
Lì c'è un risultato casuale. Durante la compilazione, gli accessi a una cella di memoria con un valore di dimensione dell'array sono dispiegati, mentre la dimensione dell'array sarà ricevuta e messa nella cella di memoria prima, quando l'array è formato, anche se l'array è dinamico e le celle con una dimensione di array e il valore di una variabile avranno lo stesso tempo di accesso.
E a giudicare dalla frase che fanno i compilatori nel corso di informatica di 3-4 anni... in generale, spero che un livello di inquadramento sufficientemente necessario non mi renda molto nervoso in un ambiente MCL)