Ottimizzare C++/Ottimizzazione del codice C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 308:
=== Valore di ritorno di funzioni ===
'''Per le funzioni che non siano espanse ''inline'', cerca di dichiarare il tipo di ritorno
Nella compilazione di una funzione non espansa inline, il compilatore non può sapere se il valore di ritorno verrà usato, e quindi lo deve comunque generare.
Generare un intero o un puntatore o un riferimento costa poco o niente, ma generare numeri a virgola mobile od oggetti più complessi richiede tempo. Se la copia comporta Comunque, se si costruisce Alcuni compilatori riescono a evitare la creazione di oggetti temporanei anche se sono legati a variabili locali (''Named Return Value Optimization''), ma in generale questo non è garantito. Per verificare se viene attuata una di tali ottimizzazioni, inserisci un contatore nei costruttori, nei distruttori, e negli operatori di assegnamento della classe Nel caso non risultassero applicate ottimizzazioni, ricorri a una delle seguenti tecniche alternative: * Rendi la funzione
* Trasforma la funzione in un costruttore del tipo ritornato, che riceve gli stessi parametri della funzione.
* Fai in modo che la funzione restituisca un oggetto di un tipo ausiliario che ruba le risorse e le cede
* Usa un
* Usa un
=== Spostamento di variabili all'esterno di cicli ===
|