Oggetti ed Efficienza


Presentato al Borland Forum 1997

Una delle ragioni principali per scegliere il C++ e' l'efficienza del codice generato. Tuttavia, lo sviluppatore attento alle prestazioni si trova spesso a scegliere tra diverse implementazioni alternative: meglio usare variabili locali, array o classi? E' meglio riusare per l'ereditarieta' o contenimento? Quant'e' il "costo" di un metodo virtuale? E' forse meglio usare uno switch/case? Sara' vero che l'ereditarieta' multipla introduce dei rallentamenti? In mancanza di dati concreti, spesso ci si lascia guidare dalla sola intuizione, o da un folklore spesso riferito a vecchie implementazioni del linguaggio.
Lo scopo di questo intervento e quello di chiarire il costo in termini di efficienza dei vari costrutti del C++: incapsulazione, contenimento diretto e tramite puntatori, ereditarieta' (singola, multipla, virtuale), polimorfismo, costruzione e restituzione per valore degli oggetti, nonche' delle estensioni del C++ Builder come fastcall e property. Basandoci sul modello degli oggetti del C++, e su una serie di verifiche sperimentali con il C++ Builder, in questo intervento verranno quantificati i costi computazionali delle diverse alternative, fornendo una guida oggettiva per la scelta dell'implementazione piu' efficiente, senza dover sacrificare inutilmente la riusabilita' del codice.

Slides non ancora disponibili

Potete lasciare un messaggio specificando a quali corsi/seminari siete interessati.