Errori, bug, domande - pagina 2315
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
Perché by_ref è più lento di by_val?
Da dove viene?
Se il codice è lo stesso
così come il risultato (differenza di tempo di esecuzione):
+12.221:0
+5.099:0
+0.149:0
-13.729:0
+14.531:0
-27.429:0
+26.405:0
-0.839:0
+5.400:0
-4.882:0
alternato (+\-) entro limiti insignificanti
Da dove viene?
Volevo mettere un voto sulla KB e non ha funzionato. E a giudicare dal fatto che le pubblicazioni recenti non hanno nessun voto, sembra che io non sia l'unico con questo problema.
Sì, non funziona.
Nei miei cicli ref e val hanno lo stesso codice (il confronto è più o meno corretto), mentre il tuo è diverso
Sì, diverso. Ma la domanda rimane valida. Perché val-variant è notevolmente più veloce di ref?
Sì, diverso. Ma la domanda rimane valida. Perché la val-variante è notevolmente più veloce di ref?
Forse la variante ref è meno ottimizzata dal compilatore - chi lo sa.
A mio avviso, entrambe le varianti dovrebbero compilare quasi lo stesso codice o anche completamente lo stesso codice, ma il compilatore gestisce le cose in modo diverso
Forse la variante ref è ottimizzata peggio dal compilatore - chi lo sa.
Mi sembra che entrambi dovrebbero compilare più o meno lo stesso codice o addirittura esattamente lo stesso, ma il compilatore pensa diversamente
La domanda era in realtà destinata agli sviluppatori, in modo che ci sia una base per le discrepanze nei motivi delle discrepanze.
Di solito cerco di passare tutto per riferimento per la velocità. E questo era giustificato in alcune costruzioni. Ma ora mi sembra.
+1. Qualcosa sembra essere rotto. Bild 1881 x64. Win 10. All'avvio carica la CPU del 20+% (i5 8600k) e la RAM di 650-700mb (nessun aumento).
Il Task Manager mostra lo stato "Non risponde".
E l'altro terminale 1881 (non Opening) funziona bene.
Aggiunto:
Alla fine si è avviato. Tuttavia ci è voluto molto tempo per l'avvio - questo non è normale. Poi ho chiuso il terminale e l'ho riaperto. Aperto all'istante. Apparentemente c'è stato qualche problema con il caricamento dei dati.
La soluzione era reinstallare il terminale. Ho anche cancellato accidentalmente la cartella con tutte le impostazioni e i grafici) Ho disegnato tutto di nuovo, ma ora funziona come un orologio.
Questo non era necessario. Avresti potuto semplicemente cancellare il file news.dat.
forse la variante ref è ottimizzata peggio dal compilatore - chi lo sa?
A mio avviso, entrambe le opzioni dovrebbero compilare approssimativamente lo stesso codice o anche completamente lo stesso codice, ma il compilatore conta in modo diverso
Qual è il legame tra il codice finale e il suo tempo di esecuzione?
Per esempio, cambiamo .. . in modo che i cicli diventino assolutamente identici
Il risultato..:
by_ref ha impiegato 18354,547 millisecondi: sum=1865600ll
by_val ha impiegato 18318.319 millisecondi: sum=1861628ll
by_ref ha impiegato 18416.747 millisecondi: sum=1904488ll
by_val ha impiegato 18221.978 millisecondi: sum=1907860ll
by_ref ha impiegato 18301.009 millisecondi: sum=1757988ll
by_val ha impiegato 18545.258 millisecondi: sum=1949720ll
by_ref ha impiegato 18373.648 millisecondi: sum=1867160ll
by_val ha impiegato 17972.432 millisecondi: sum=1760308ll
by_ref ha impiegato 19426.076 millisecondi: sum=1795564ll
by_val ha impiegato 19177.485 millisecondi: sum=1826360ll
è circa lo stesso... O pensate che il compilatore abbia creato un codice diverso negli stessi cicli?
Lasciate che vi ricordi che c' era qualcosa del genere
by_ref ha impiegato 13889.424 millisecondi: sum=-1000000ll
by_val ha impiegato 14135,603 millisecondi: sum=-1000000ll
e codice diverso... e c'è circa la stessa differenza di tempo, ma il codice e le funzioni stesse sono esattamente le stesse