Ottimizzare C++/Ciclo di vita dell’ottimizzazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riportate modifiche da en.wikibooks
m Riportate modifiche da en.wikibooks
Riga 45:
 
Gli array, le strutture, e le istanze di classi sono oggetti che, se non sono vuoti, contengono sotto-oggetti.
Perciò, tali oggetti verranno chiamati '''oggetti composti''' (sinonimo di ''oggetti compositi'' o ''oggetti aggregati'').
 
Diciamo che un oggetto '''possiede''' un altro oggetto se la deallocazione del primo oggetto comporta la deallocazione del secondo.
Per esempio, un oggetto <code>vector</code> non vuoto tipicamente contiene un puntatore a un oggetto arraybuffer contenente gli elementi; la distruzione del <code>vector</code> comporta la distruzione di tale arraybuffer, e quindi diciamo che l'array diquesto datibuffer è ''posseduto'' dall'oggetto <code>vector</code>.
 
Alcune ottimizzazioni risultano applicabiliutili solo per brevi sequenze di dati, altre per sequenze più lunghe.
In seguito, si userà la seguente classificazione per le dimensioni degli oggetti:
* '''Piccolissimo''': Non oltre 8 byte. Sta in uno o due registri a 32 bit o in un registro a 64 bit.
* '''Piccolo''': Oltre 8 byte, ma non oltre 64 byte. Non sta in un registro del processore, ma sta in una linea della cache dei dati del processore, e può essere interamente indirizzato da istruzioni macchina molto compatte tramite uno scostamento rispetto all'indirizzo iniziale.