Ieri ho avuto un'intervista. Lì mi hanno chiesto quando è avvenuto l'ottimizzazione del codice? Say,Quando si verifica l'ottimizzazione del codice?
int abc;//Global variable
abc = 3;
if(abc == 3)
{
printf("abc will be always 3");
}
else
{
printf("This will never executed");
}
Ora la domanda è quando l'ottimizzazione accade? A ... In fase di esecuzione B ... Al momento della compilazione. Ho risposto al momento della compilazione ... Per me ho pensato, il compilatore controlla la parola chiave volatile al momento della compilazione. Se la variabile non è dichiarata come volatile, ottimizza il codice. Ma quando il compilatore arriva a saperlo, questa variabile non sarà mai più di 3? Se è in fase di esecuzione, allora quando il compilatore viene a sapere che la variabile non sarà mai più di 3? Perché se la variabile verrà modificata dopo l'esecuzione di questa parte del codice. Per favore, cancella il mio dubbio
La cosa più vicina a runtime ottimizzazione in C è l'ottimizzazione basata profiler. Compilare il programma, quindi eseguirlo, mentre si utilizza un profiler per raccogliere statistiche. Quindi si compila di nuovo, dando queste statistiche al compilatore. La seconda compilazione userebbe queste informazioni per generare codice più veloce. – ugoren