|
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.