Capisco il comportamento dei tipi di dati qualificati const
. Tuttavia, sono curioso di sapere se c'è un guadagno o una perdita di prestazioni da eccessiva o insufficiente zelantezza delle variabili qualificanti come const
. Penso in particolare alle variabili dichiarate e utilizzate esclusivamente all'interno di un blocco di codice isolato. Ad esempio, qualcosa come:La dichiarazione delle variabili C++ aiuta o danneggia le prestazioni?
const qreal padding = CalculatePadding();
const QSizeF page_size = CalculatePagePreviewSize(padding);
const QRectF content_rect = CalculatePagePreviewContentRect(page_size);
const QList<QRectF> pages = renderer.BuildPrintPages(printer_, map_scene_);
const QFont page_number_font = CalculatePageNumberFont();
const QFontMetrics metrics(page_number_font);
Supponiamo che ho solo bisogno const
metodi Qualificato su tutti questi C'è qualche guadagno di prestazioni nel dichiarare tutti const
(e altro ancora.)? Oppure, al contrario, questo danneggia le prestazioni?
Sono curioso sia per le prestazioni in fase di esecuzione (sto indovinando questo non fa alcuna differenza come il const
è esclusivamente un controllo in fase di compilazione - qualcuno può confermare?) E compilare in tempo le prestazioni. Non ho abbastanza esperienza con C++ per avere un'idea di questo, e mi chiedo se dovrei sbagliare sul lato di sotto-o sotto-applicazione const
quando tutte le altre cose (manutenibilità, ecc.) Sono uguali.
nella maggior parte dei casi, nessuna differenza di prestazioni in fase di esecuzione – Anycorn
dupe? http://stackoverflow.com/questions/3435026/can-const-correctness-improve-performance – Anycorn
Qt è molto copy-on-write quindi sospetto che const possa avere un effetto reale qui. –