Domanda

Vorrei selezionare le ottimizzazioni del compilatore per generare il più rapidamente possibile.

Quale delle seguenti impostazioni devo impostare a true?

  • Morto negozio eliminazione
  • Eliminare i duplicati di espressioni all'interno di blocchi di base e funzioni
  • Attivare il ciclo di induzione variabile e riduzione della forza
  • Attivare Pentium istruzioni di programmazione
  • Espandere comuni funzioni intrinseche
  • Ottimizzare i salti
  • Utilizzare variabili registro

C'è anche l'opzione per Generare il più veloce possibile il codice.', che ho ovviamente impostato su true.Tuttavia, quando ho impostato a true, tutte le opzioni di cui sopra sono ancora impostato a false.

Quindi vorrei sapere se una qualsiasi delle opzioni di cui sopra permetterà di accelerare l'applicazione se ho impostato il loro vero?

È stato utile?

Soluzione

Quindi vorrei sapere se una qualsiasi delle opzioni di cui sopra permetterà di accelerare l'applicazione se ho impostato il loro vero?

So che alcuni mi odieranno per questo, ma qui nessuno in grado di rispondere in modo veritiero.Devi provare il tuo programma con e senza di loro, e profilo ogni build e vedere quali sono i risultati.Guess-lavoro non si ottiene chiunque, ovunque.

Compilatori già fare tonnellate(!) di ottimizzazione grande, con o senza il tuo permesso.La vostra scommessa migliore è quello di scrivere il codice in un ambiente pulito e organizzato la materia, e la preoccupazione di manutenibilità e l'estensibilità.Come mi piace dire:Codice ora, di ottimizzare la successiva.

Altri suggerimenti

Non gestire individuali di ottimizzazione.Compilatore scrittori sono persone molto intelligenti - basta girare tutti a meno che non si specifica la necessità di non.Il vostro tempo è speso meglio per l'ottimizzazione del codice (migliorare complessità algoritmica delle funzioni, ecc) piuttosto che a giocherellare con le opzioni del compilatore.

Il mio consiglio, utilizzare un compilatore.Intel ha una grande reputazione come un compilatore ottimizzante.VC e GCC, naturalmente, sono anche grandi scelte.

Si potrebbe guardare il codice generato con diversi compilato opzioni per vedere quale è più veloce, ma capisco che al giorno d'oggi molte persone non hanno l'esperienza per farlo.

Pertanto, sarebbe utile per il profilo per l'applicazione.Se c'è un evidente parte richiedono velocità, aggiungere il codice per eseguire un migliaio di dieci milioni di volte e l'ora di utilizzo utime() se è disponibile.Il ciclo dovrebbe funzionare abbastanza a lungo che gli altri processi in esecuzione in modo intermittente non influenzano il risultato—dieci-venti secondi è un punto di riferimento popolare gamma.O eseguire più di temporizzazione prove.Compila i diversi casi di test e di esecuzione di esso per vedere che cosa funziona meglio.

Trascorrere una o due ore a giocare con le opzioni di ottimizzazione rapidamente rivelano che la maggior parte hanno minore effetto.Tuttavia, la stessa che il tempo speso a pensare l'essenza dell'algoritmo e fare piccole modifiche (codice di rimozione è un modo particolarmente efficace) può spesso notevolmente migliorare il tempo di esecuzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top